Migrazione a gcloud CLI

L'SDK autonomo di App Engine è stato deprecato il 30 luglio 2019 e adesso è in fase di ritiro. La seguente tabella elenca le funzionalità e le alternative consigliate:

Deprecata Azione consigliata
SDK App Engine autonomo Scarica Google Cloud CLI
Accedi alle API legacy di App Engine utilizzando l'SDK di App Engine Esegui la migrazione a un servizio Google Cloud o di terze parti non in bundle oppure accedi ai servizi in bundle utilizzando l'SDK dei servizi App Engine se utilizzi un runtime di seconda generazione
appcfg comandi Eseguire la migrazione dalla riga di comando 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 basato su SDK Java App Engine per Maven (com.google.appengine.appengine-maven) Esegui la migrazione al plug-in Maven basato su interfaccia a riga di comando gcloud
Plug-in basato su SDK Java App Engine per Gradle (com.google.appengine.appengine-gradle) Esegui la migrazione gcloud CLI-in Gradle basato su interfaccia a riga di comando gcloud
Formati file cron.xml, datastore-index.xml, dispatch.xml e queue.xml Esegui la migrazione automatica utilizzando lo strumento gcloud beta app migrate-config o esegui la migrazione manuale di xml a yaml file.

Orario della migrazione

30 luglio 2019: gli strumenti autonomi basati su SDK di App Engine 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 disattivato e rimosso il supporto per l'SDK App Engine autonomo.

Funzionalità non compatibili con le versioni precedenti

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

  • Download dei file della tua applicazione con AppCfg.

Migrazione da XML ai formati file YAML

gcloud CLI non supporta i seguenti formati file:

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

I seguenti esempi mostrano come eseguire la migrazione dei file xml in file yaml.

Migrazione automatica dei file

Per eseguire la migrazione automatica dei file xml:

  1. Devi avere gcloud CLI versione 226.0.0 o successiva. Per eseguire l'aggiornamento alla versione più recente:

    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 un esempio di conversione di file da xml a yaml riuscita, consulta le schede Migrazione manuale dei file.

Migrazione manuale dei file

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

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 ulteriori informazioni, 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 ulteriori informazioni, 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 ulteriori informazioni, 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>