Migrazione a 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 Eseguire la migrazione a un servizio Google Cloud o di terze parti non in bundle oppure accesso in bundle usando l'SDK dei servizi App Engine se utilizzi un runtime di seconda generazione
appcfg comandi 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 basato su SDK Java App Engine per Maven (com.google.appengine.appengine-maven) Eseguire 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 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.

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 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 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 dei formati di file XML in YAML

L'interfaccia a riga di comando gcloud 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 disporre di gcloud CLI versione 226.0.0 o successive. 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 un esempio di conversione di file da xml a yaml riuscita, consulta la Schede per la migrazione manuale dei file.

Migrazione manuale dei file

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 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 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 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 ciascuno con campi che corrispondono a uno 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 che corrispondono a ciascuno del tag <queue> nel tuo 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>