遷移至 Cloud SDK

App Engine SDK 獨立版訂於 2019 年 7 月 30 日淘汰,並將於 2020 年 7 月 30 日起停止提供下載。下表列出已淘汰的功能和建議的替代方案:

已淘汰 建議做法
App Engine SDK 獨立版 下載 Cloud SDK
appcfg 指令 從 AppCfg 遷移至 gcloud 指令列
dev_appserver.sh 指令 如要進行本機開發,請從 Cloud SDK 的 bin 目錄執行 java_dev_appserver.sh 指令。
Maven 適用且以 Java App Engine SDK 為基礎的外掛程式 (com.google.appengine.appengine-maven) 遷移至以 Cloud SDK 為基礎的 Maven 外掛程式
Gradle 適用且以 Java App Engine SDK 為基礎的外掛程式 (com.google.appengine.appengine-gradle) 遷移至以 Cloud SDK 為基礎的 Gradle 外掛程式
cron.xmldatastore-index.xmldispatch.xmlqueue.xml 檔案格式 使用 gcloud beta app migrate-config 工具自動遷移或手動將您的 xml 遷移至 yaml 檔案

遷移時間表

2019 年 7 月 30 日:淘汰以 App Engine SDK 獨立版為基礎的工具。

2020 年 7 月 30 日:App Engine SDK 獨立版將停止提供下載,並且可能無法使用。

2020 年 7 月 30 日:Google 將關閉並移除對 App Engine SDK 獨立版的支援。

回溯不相容的功能

隨著 appcfg 工具和 App Engine SDK 獨立版的淘汰,Cloud SDK 將不再支援以下功能:

將 XML 轉換成 YAML 檔案格式

Cloud SDK 不支援下列檔案格式:

  • cron.xml
  • datastore-index.xml
  • dispatch.xml
  • queue.xml

以下範例說明如何將 xml 檔案轉換成 yaml 檔案。

自動遷移檔案

如何自動遷移 xml 檔案:

  1. 您必須具有 Cloud SDK 226.0.0 以上版本。如要更新至最新版本:

    gcloud components update
    
  2. 對您要遷移的每個檔案,指定下列其中一個子指令 (cron-xml-to-yamldatastore-indexes-xml-to-yamldispatch-xml-to-yamlqueue-xml-to-yaml) 和檔案名稱:

    gcloud beta app migrate-config queue-xml-to-yaml MY-QUEUE-XML-FILE.xml
    
  3. 在部署到實際工作環境之前,先手動再次檢查已轉換的檔案。

    如需 xmlyaml 的檔案成功轉換範例,請參閱手動遷移檔案一節的各分頁。

手動遷移檔案

如何手動將 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.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.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>
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Java 適用的 App Engine 標準環境