Eseguire la migrazione gcloud CLI

L'SDK App Engine autonomo è stato ritirato il 30 luglio 2 2019 ed è stato ora disattivato. La tabella seguente elenca le funzionalità e le relative alternative consigliate:

Ritirato Azione consigliata
SDK App Engine autonomo Scaricare Google Cloud CLI
Accedere alle API precedenti di App Engine utilizzando l'SDK App Engine Effettua la migrazione a un servizio Google Cloud o di terze parti non integrato oppure accedi ai servizi integrati utilizzando l'SDK per i servizi App Engine se utilizzi un runtime di seconda generazione
appcfg comandi Eseguire la migrazione da AppCfg alla riga di comando gcloud
dev_appserver.sh comandi Per lo sviluppo locale, esegui il comando java_dev_appserver.sh dalla directory bin di gcloud CLI
Plug-in per Maven basato su SDK Java App Engine (com.google.appengine.appengine-maven) Eseguire la migrazione al plug-in Maven basato su gcloud CLI
Plug-in per Gradle basato sull'SDK Java App Engine (com.google.appengine.appengine-gradle) Eseguire la migrazione al plug-in Gradle basato su gcloud CLI
Formati di file cron.xml, datastore-index.xml, dispatch.xml e queue.xml Esegui la migrazione automaticamente utilizzando lo strumento gcloud beta app migrate-config o esegui manualmente la migrazione dei file xml in yaml.

Programma della migrazione

30 luglio 2019: gli strumenti basati sull'SDK App Engine indipendente sono stati ritirati.

30 agosto 2020: l'SDK App Engine autonomo non è disponibile per il download e potrebbe non funzionare, se utilizzato.

30 agosto 2020: Google ha interrotto e rimosso il supporto per l'SDK App Engine autonomo.

Funzionalità non compatibili con le versioni precedenti

A seguito della disattivazione dello strumento appcfg e dell'SDK App Engine autonomo, le seguenti funzionalità non sono attualmente supportate in gcloud CLI:

  • Download dei file dell'applicazione con AppCfg.

Migrazione dei formati file XML a YAML

Gcloud CLI non supporta i seguenti formati file:

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

Gli esempi riportati di seguito mostrano come eseguire la migrazione dei file xml ai file yaml.

Eseguire la migrazione dei file automaticamente

Per eseguire la migrazione automatica dei file xml:

  1. Devi disporre di gcloud CLI versione 226.0.0 o successive. Per eseguire l'aggiornamento all'ultima versione:

    gcloud components update
    
  2. Per ogni file di cui vuoi eseguire la migrazione, specifica uno dei seguenti sottocomandi (cron-xml-to-yaml, datastore-indexes-xml-to-yaml, dispatch-xml-to-yaml, queue-xml-to-yaml) e il nome del file:

    gcloud beta app migrate-config queue-xml-to-yaml MY-QUEUE-XML-FILE.xml
    
  3. Controlla manualmente il file convertito prima di eseguire il deployment in produzione.

    Per una conversione di file di esempio xml in yaml riuscita, consulta le schede Eseguire la migrazione dei file manualmente.

Eseguire la migrazione dei file manualmente

Per eseguire manualmente la migrazione dei file xml in file yaml:

cron.yaml

Crea un file cron.yaml con un oggetto cron contenente un elenco di oggetti, ciascuno con campi corrispondenti a ciascuno degli attributi del tag <cron> nel file cron.xml, come mostrato di seguito.

File cron.yaml convertito:

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'

File cron.xml originale:

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

Per saperne di più, consulta la documentazione di riferimento di cron.yaml.

dispatch.yaml

Crea un file dispatch.yaml con un oggetto dispatch contenente un elenco di oggetti, ciascuno con campi corrispondenti a ciascuno degli attributi del tag <dispatch> nel file dispatch.xml, come mostrato di seguito.

File dispatch.yaml convertito:

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

File dispatch.xml originale

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

Per saperne di più, consulta la documentazione di riferimento di dispatch.yaml.

index.yaml

Crea un file index.yaml con un oggetto indexes contenente un elenco di oggetti, ciascuno con campi corrispondenti a ciascuno degli attributi del tag <datastore-index> nel file datastore-indexes.xml, come mostrato di seguito.

File index.yaml convertito:

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

File datastore-index.xml originale:

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

Per saperne di più, consulta la documentazione di riferimento di index.yaml.

queue.yaml

Crea un file queue.yaml con un oggetto queue contenente un elenco di oggetti, ciascuno con campi corrispondenti a ciascuno degli attributi del tag <queue> nel file queue.xml, come mostrato di seguito.

File queue.yaml convertito:

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

File queue.xml originale:

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