Migrar para a CLI gcloud

O SDK do App Engine autónomo foi descontinuado a 30 de julho de 2019 e já foi encerrado. A tabela seguinte apresenta as funcionalidades e as respetivas alternativas recomendadas:

Descontinuado Ação recomendada
SDK do App Engine autónomo Transfira a CLI do Google Cloud
Aceda às APIs antigas do App Engine através do SDK do App Engine Migrar para um serviço de terceiros Google Cloud ou não agrupado, ou aceder a serviços agrupados através do SDK dos serviços do App Engine se estiver a usar um tempo de execução de segunda geração
appcfg comandos Migre do AppCfg para a linha de comandos gcloud
dev_appserver.sh comandos Para o desenvolvimento local, execute o comando java_dev_appserver.sh a partir do diretório bin da CLI gcloud
Plugin baseado no SDK do Java App Engine para Maven (com.google.appengine.appengine-maven) Migre para o plug-in do Maven baseado na CLI gcloud
Plug-in baseado no SDK do Java App Engine para Gradle (com.google.appengine.appengine-gradle) Migre para o plugin do Gradle baseado na CLI gcloud
Formatos de ficheiros cron.xml, datastore-index.xml, dispatch.xml e queue.xml Migre automaticamente através da ferramenta gcloud beta app migrate-config ou migre manualmente os ficheiros xml para yaml.

Calendário de migração

30 de julho de 2019: as ferramentas autónomas baseadas no SDK do App Engine foram descontinuadas. 30 de agosto de 2020: o SDK do App Engine autónomo não está disponível para transferência e pode não funcionar, se for usado. 30 de agosto de 2020: a Google encerrou e removeu o apoio técnico para o SDK do App Engine autónomo.

Funcionalidades não compatíveis com versões anteriores

Como resultado do encerramento da ferramenta appcfg e do SDK do App Engine autónomo, as seguintes funcionalidades não são atualmente suportadas na CLI gcloud:

  • Transferências dos ficheiros da sua aplicação com o AppCfg.

Migrar formatos de ficheiros XML para YAML

A CLI gcloud não suporta os seguintes formatos de ficheiros:

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

Os exemplos seguintes demonstram como migrar os seus ficheiros xml para ficheiros yaml.

Migrar os seus ficheiros automaticamente

Para migrar automaticamente os seus ficheiros xml:

  1. Tem de ter a versão 226.0.0 ou posterior da CLI gcloud. Para atualizar para a versão mais recente:

    gcloud components update
    
  2. Para cada ficheiro que quer migrar, especifique um dos seguintes subcomandos (cron-xml-to-yaml, datastore-indexes-xml-to-yaml, dispatch-xml-to-yaml, queue-xml-to-yaml) e o nome do ficheiro:

    gcloud beta app migrate-config queue-xml-to-yaml MY-QUEUE-XML-FILE.xml
    
  3. Verifique manualmente o ficheiro convertido antes de o implementar em produção.

    Para uma conversão bem-sucedida de um ficheiro de exemplo xml para yaml, consulte os separadores Migrar os seus ficheiros manualmente.

Migrar os seus ficheiros manualmente

Para migrar manualmente os seus ficheiros xml para ficheiros yaml:

cron.yaml

Crie um ficheiro cron.yaml com um objeto cron que contenha uma lista de objetos, cada um com campos que correspondam a cada um dos atributos da etiqueta <cron> no seu ficheiro cron.xml, conforme mostrado abaixo.

Ficheiro cron.yaml convertido:

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'

Ficheiro cron.xml original:

<?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>

Para mais informações, consulte a cron.yamldocumentação de referência.

dispatch.yaml

Crie um ficheiro dispatch.yaml com um objeto dispatch que contenha uma lista de objetos, cada um com campos que correspondem a cada um dos atributos da etiqueta <dispatch> no seu ficheiro dispatch.xml, conforme mostrado abaixo.

Ficheiro dispatch.yaml convertido:

dispatch:
- url: '*/favicon.ico'
  module: default
- url: 'simple-sample.uc.r.appspot.com/'
  module: default
- url: '*/mobile/*'
  module: mobile-frontend

Ficheiro dispatch.xml original

<?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>

Para mais informações, consulte a documentação de dispatch.yaml referência

index.yaml

Crie um ficheiro index.yaml com um objeto indexes que contenha uma lista de objetos, cada um com campos que correspondem a cada um dos atributos da etiqueta <datastore-index> no seu ficheiro datastore-indexes.xml, conforme mostrado abaixo.

Ficheiro index.yaml convertido:

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

Ficheiro datastore-index.xml original:

<?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>

Para mais informações, consulte a index.yamldocumentação de referência.

queue.yaml

Crie um ficheiro queue.yaml com um objeto queue que contenha uma lista de objetos, cada um com campos que correspondem a cada um dos atributos da etiqueta <queue> no seu ficheiro queue.xml, conforme mostrado abaixo.

Ficheiro queue.yaml convertido:

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

Ficheiro queue.xml original:

<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>