Migrazione a gcloud CLI

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

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
Comandi appcfg Eseguire la migrazione da AppCfg alla riga di comando gcloud
Comandi dev_appserver.sh 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) Esegui la migrazione al plug-in Maven basato su gcloud CLI
Plug-in basato su SDK Java App Engine per Gradle (com.google.appengine.appengine-gradle) Esegui la migrazione al plug-in Gradle basato su gcloud CLI
Formati 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.

Tempistica della migrazione

30 luglio 2019: sono disponibili strumenti autonomi basati su SDK App Engine ritirato.

30 agosto 2020: l'SDK App Engine autonomo non è disponibile per scaricare 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 della versione autonoma SDK di App Engine, le seguenti funzionalità non sono attualmente supportate in gcloud CLI:

  • Download dei file della tua applicazione con AppCfg.

Migrazione dei formati di file XML in 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 yaml file.

Migrazione automatica dei file

Per eseguire automaticamente la migrazione 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 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 riuscita dei file di esempio da xml a yaml, consulta le schede Eseguire la migrazione dei file manualmente.

Migrazione manuale dei file

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

cron.yaml

Crea un file cron.yaml con un oggetto cron contenente un elenco di oggetti, ciascuno con campi che corrispondono a ciascuno degli attributi del tag <cron> in il tuo 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 documentazione.

dispatch.yaml

Crea un file dispatch.yaml con un oggetto dispatch contenente un elenco di oggetti, ciascuno con campi che corrispondono a ciascuno del tag <dispatch> nel tuo 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 documentazione

index.yaml

Crea un file index.yaml con un oggetto indexes contenente un elenco di con campi che corrispondono a ciascuno degli elementi <datastore-index> nel tuo 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 documentazione.

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>