独立版 App Engine SDK 已于 2019 年 7 月 30 日弃用,现已关停。下表列出了功能及其建议的替代方案:
已弃用 | 推荐执行的操作 |
---|---|
独立版 App Engine SDK | 下载 Google Cloud CLI |
使用 App Engine SDK 访问 App Engine 旧版 API | 迁移到未绑定的 Google Cloud 或第三方服务,或使用 App Engine 服务 SDK 访问捆绑的服务(如果您使用的是第二代运行时) |
appcfg 命令 |
从 AppCfg 迁移到 gcloud 命令行 |
dev_appserver.sh 命令 |
对于本地开发,请从 gcloud CLI 的 bin 目录运行 java_dev_appserver.sh 命令。 |
基于 Java App Engine SDK 的 Maven 插件 (com.google.appengine.appengine-maven ) |
迁移到基于 gcloud CLI 的 Maven 插件 |
基于 Java App Engine SDK 的 Gradle 插件 (com.google.appengine.appengine-gradle ) |
迁移到基于 gcloud CLI 的 Gradle 插件 |
cron.xml 、datastore-index.xml 、dispatch.xml 、queue.xml 文件格式 |
使用 gcloud beta app migrate-config 工具自动迁移,或手动将您的 xml 迁移到 yaml 文件。 |
迁移时刻表
2019 年 7 月 30 日:基于独立版 App Engine SDK 的工具已弃用。
2020 年 8 月 30 日:独立版 App Engine SDK 将不再提供下载,且其可能无法正常运行(如果您继续使用)。
2020 年 8 月 30 日:Google 将关停独立版 App Engine SDK,且不再为其提供支持。
不向后兼容的功能
由于 appcfg
工具和独立版 App Engine SDK 已关停,因此 gcloud CLI 目前不支持以下功能:
- 使用 AppCfg 下载应用的文件。
将 XML 迁移到 YAML 文件格式
gcloud CLI 不支持以下文件格式:
cron.xml
datastore-index.xml
dispatch.xml
queue.xml
以下示例演示了如何将 xml
文件迁移到 yaml
文件。
自动迁移文件
要自动迁移 xml
文件,请执行以下操作:
您必须具备 gcloud CLI 226.0.0 或更高版本。要更新到最新版本,请运行以下命令:
gcloud components update
对于您要迁移的每个文件,请指定以下某个子命令(
cron-xml-to-yaml
、datastore-indexes-xml-to-yaml
、dispatch-xml-to-yaml
、queue-xml-to-yaml
)和文件名:gcloud beta app migrate-config queue-xml-to-yaml MY-QUEUE-XML-FILE.xml
在部署到生产环境之前手动仔细检查转换后的文件。
如需查看成功将
xml
转换成yaml
文件的示例,请参阅手动迁移文件标签页。
手动迁移文件
要手动将 xml
文件迁移到 yaml
文件,请执行以下操作:
cron.yaml
使用包含对象列表的 cron
对象创建 cron.yaml
文件,列表中的每个对象都包含与 cron.xml
文件中的每个 <cron>
标记特性相对应的字段,如下所示。
已转换的 cron.yaml
文件:
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'
原始的 cron.xml
文件:
<?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>
如需了解详情,请参阅 cron.yaml
参考文档。
dispatch.yaml
使用包含对象列表的 dispatch
对象创建 dispatch.yaml
文件,列表中的每个对象都包含与 dispatch.xml
文件中的每个 <dispatch>
标记特性相对应的字段,如下所示。
已转换的 dispatch.yaml
文件:
dispatch:
- url: '*/favicon.ico'
module: default
- url: 'simple-sample.uc.r.appspot.com/'
module: default
- url: '*/mobile/*'
module: mobile-frontend
原始的 dispatch.xml
文件
<?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>
如需了解详情,请参阅 dispatch.yaml
参考文档
index.yaml
使用包含对象列表的 indexes
对象创建 index.yaml
文件,列表中的每个对象都包含与 datastore-indexes.xml
文件中的每个 <datastore-index>
标记特性相对应的字段,如下所示。
已转换的 index.yaml
文件:
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
原始的 datastore-index.xml
文件:
<?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>
如需了解详情,请参阅 index.yaml
参考文档。
queue.yaml
使用包含对象列表的 queue
对象创建 queue.yaml
文件,列表中的每个对象都包含与 queue.xml
文件中的每个 <queue>
标记特性相对应的字段,如下所示。
已转换的 queue.yaml
文件:
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
原始的 queue.xml
文件:
<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>