Migrating to gcloud CLI
Stay organized with collections
Save and categorize content based on your preferences.
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.xmldatastore-index.xmldispatch.xmlqueue.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:
gcloudcomponentsupdateFor 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:gcloudbetaappmigrate-configqueue-xml-to-yamlMY-QUEUE-XML-FILE.xmlManually double-check the converted file before deploying to production.
For a successful sample
xmltoyamlfile 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:'every2minutes'
description:'Repopulatethecacheevery2minutes'
-url:'/weeklyreport'
schedule:'everymonday08:30'
target:'version-2'
timezone:'America/New_York'
description:'Mailoutaweeklyreport'
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>