The standalone App Engine SDK was deprecated as of July 30, 2019, and it is now shut down. The following table lists features and their recommended alternatives:
Deprecated | Recommended action |
---|---|
standalone App Engine SDK | Download Google Cloud CLI |
Access App Engine legacy APIs using the App Engine SDK | Migrate to an unbundled Google Cloud or third-party service, or access bundled services using the App Engine services SDK if you are using a second-generation runtime |
appcfg
commands |
Migrate from AppCfg to gcloud command line |
dev_appserver.sh
commands |
For local development, run the java_dev_appserver.sh
command from the bin directory of gcloud CLI |
Java App Engine SDK-based plugin for Maven ( com.google.appengine.appengine-maven
) |
Migrate to the gcloud CLI-based Maven plugin |
Java App Engine SDK-based plugin for Gradle ( com.google.appengine.appengine-gradle
) |
Migrate to the gcloud CLI-based Gradle plugin |
cron.xml
, datastore-index.xml
, dispatch.xml
, and queue.xml
file formats |
Migrate automatically using the gcloud beta app migrate-config
tool
or migrate your xml
to yaml
files manually
. |
Migration timetable
July 30, 2019: The standalone App Engine SDK-based tooling is deprecated.
August 30, 2020: The standalone App Engine SDK is not available for download and might not work, if used.
August 30, 2020: Google shut down and removed support for the standalone App Engine SDK.
Backward non-compatible features
As a result of the shutdown of the appcfg
tool and the standalone
App Engine SDK, the following features are currently not supported in
gcloud CLI:
- Downloads of your application's files with AppCfg.
Migrating XML to YAML file formats
gcloud CLI does not support the following file formats:
-
cron.xml
-
datastore-index.xml
-
dispatch.xml
-
queue.xml
The following examples demonstrate how to migrate your xml
files to yaml
files.
Migrating your files automatically
To migrate your xml
files automatically:
-
You must have gcloud CLI version 226.0.0 or later . To update to the latest version:
gcloud components update
-
For each file you'd like to migrate, specify one of the following subcommands (
cron-xml-to-yaml
,datastore-indexes-xml-to-yaml
,dispatch-xml-to-yaml
,queue-xml-to-yaml
) and file name:gcloud beta app migrate - config queue - xml - to - yaml MY - QUEUE - XML - FILE . xml
-
Manually double-check the converted file before deploying to production.
For a successful sample
xml
toyaml
file conversion, see the Migrating your files manually tabs.
Migrating your files manually
To manually migrate your xml
files to yaml
files:
cron.yaml
Create a cron.yaml
file with a cron
object containing a list of objects,
each with fields that correspond to each of the <cron>
tag attributes in
your cron.xml
file, as shown below.
Converted cron.yaml
file:
cron
:
-
url
:
'/recache'
schedule
:
'every
2
minutes'
description
:
'Repopulate
the
cache
every
2
minutes'
-
url
:
'/weeklyreport'
schedule
:
'every
monday
08:30'
target
:
'version-2'
timezone
:
'America/New_York'
description
:
'Mail
out
a
weekly
report'
Original cron.xml
file:
< ?xml version="1.0" encoding="UTF-8"?
>
< cronentries
>
< cron
>
< url>/recache</url>
< description>Repopulate the cache every 2 minutes</description>
< schedule>every 2 minutes</schedule>
< /cron
>
< cron
>
< url>/weeklyreport</url>
< description>Mail out a weekly report</description>
< schedule>every monday 08:30</schedule>
< timezone>America/New_York</timezone>
< target>version-2</target>
< /cron
>
< /cronentries
>
For more information, see the cron.yaml
reference
documentation.
dispatch.yaml
Create a dispatch.yaml
file with a dispatch
object containing a list of
objects, each with fields that correspond to each of the <dispatch>
tag
attributes in your dispatch.xml
file, as shown below.
Converted dispatch.yaml
file:
dispatch
:
-
url
:
'*/favicon.ico'
module
:
default
-
url
:
'simple-sample.uc.r.appspot.com/'
module
:
default
-
url
:
'*/mobile/*'
module
:
mobile-frontend
Original dispatch.xml
file
< ?xml version="1.0" encoding="UTF-8"?
>
< dispatch-entries
>
< dispatch
>
< url>*/favicon.ico</url>
< module>default</module>
< /dispatch
>
< dispatch
>
< url>simple-sample.uc.r.appspot.com/</url>
< module>default</module>
< /dispatch
>
< dispatch
>
< url>*/mobile/*</url>
< module>mobile-frontend</module>
< /dispatch
>
< /dispatch-entries
>
For more information, see the dispatch.yaml
reference
documentation
index.yaml
Create an index.yaml
file with an indexes
object containing a list of
objects, each with fields that correspond to each of the <datastore-index>
tag attributes in your datastore-indexes.xml
file, as shown below.
Converted index.yaml
file:
indexes
:
-
ancestor
:
false
kind
:
Employee
properties
:
-
direction
:
asc
name
:
lastName
-
direction
:
desc
name
:
hireDate
-
ancestor
:
false
kind
:
Project
properties
:
-
direction
:
asc
name
:
dueDate
-
direction
:
desc
name
:
cost
Original datastore-index.xml
file:
< ?xml version="1.0" encoding="utf-8"?
>
< datastore-indexes
autoGenerate="true"
>
< datastore-index kind="Employee" ancestor="false"
>
< property name="lastName" direction="asc" /
>
< property name="hireDate" direction="desc" /
>
< /datastore-index
>
< datastore-index kind="Project" ancestor="false"
>
< property name="dueDate" direction="asc" /
>
< property name="cost" direction="desc" /
>
< /datastore-index
>
< /datastore-indexes
>
For more information, see the index.yaml
reference
documentation.
queue.yaml
Create a queue.yaml
file with a queue
object containing a list of
objects, each with fields that correspond to each of the <queue>
tag
attributes in your queue.xml
file, as shown below.
Converted queue.yaml
file:
queue
:
-
name
:
fooqueue
mode
:
push
rate
:
1/s
retry_parameters
:
task_retry_limit
:
7
task_age_limit
:
2d
-
name
:
barqueue
mode
:
push
rate
:
1/s
retry_parameters
:
min_backoff_seconds
:
10
max_backoff_seconds
:
200
max_doublings
:
0
Original queue.xml
file:
< queue-entries
>
< queue
>
< name>fooqueue</name>
< rate>1/s</rate>
< retry-parameters
>
< task-retry-limit>7</task-retry-limit>
< task-age-limit>2d</task-age-limit>
< /retry-parameters
>
< /queue
>
< queue
>
< name>barqueue</name>
< rate>1/s</rate>
< retry-parameters
>
< min-backoff-seconds>10</min-backoff-seconds>
< max-backoff-seconds>200</max-backoff-seconds>
< max-doublings>0</max-doublings>
< /retry-parameters
>
< /queue
>
< queue-entries
>