Migrar a la CLI de gcloud

El SDK independiente de App Engine dejó de estar disponible el 30 de julio del 2019 y ahora se ha cerrado. En la siguiente tabla se enumeran las funciones y sus alternativas recomendadas:

Obsoleto Acción recomendada
SDK independiente de App Engine Descargar Google Cloud CLI
Acceder a las APIs antiguas de App Engine con el SDK de App Engine Migra a un servicio de terceros o Google Cloud sin agrupar, o accede a los servicios agrupados mediante el SDK de servicios de App Engine si usas un entorno de ejecución de segunda generación.
Comandos de appcfg Migrar de AppCfg a la línea de comandos de gcloud
Comandos de dev_appserver.sh Para el desarrollo local, ejecuta el comando java_dev_appserver.sh desde el directorio bin de la CLI de gcloud.
Plugin basado en el SDK de Java App Engine para Maven (com.google.appengine.appengine-maven) Migrar al complemento Maven basado en la CLI de gcloud
Plugin basado en el SDK de Java App Engine para Gradle (com.google.appengine.appengine-gradle) Migrar al complemento Gradle basado en la CLI de gcloud
Formatos de archivo cron.xml, datastore-index.xml, dispatch.xml y queue.xml Migra automáticamente con la herramienta gcloud beta app migrate-config o migra manualmente tus archivos xml a yaml.

Calendario de migración

30 de julio del 2019: las herramientas independientes basadas en el SDK de App Engine han quedado obsoletas. 30 de agosto del 2020: el SDK independiente de App Engine no está disponible para descargar y puede que no funcione si se usa. 30 de agosto del 2020: Google cerró y retiró la asistencia para el SDK de App Engine independiente.

Funciones no compatibles con versiones anteriores

Como consecuencia del cierre de la herramienta appcfg y del SDK independiente de App Engine, las siguientes funciones no se admiten actualmente en la CLI de gcloud:

  • Descargas de los archivos de tu aplicación con AppCfg.

Migrar formatos de archivo XML a YAML

gcloud CLI no admite los siguientes formatos de archivo:

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

En los siguientes ejemplos se muestra cómo migrar los archivos xml a archivos yaml.

Migrar tus archivos automáticamente

Para migrar tus archivos xml automáticamente, sigue estos pasos:

  1. Debes tener la versión 226.0.0 o una posterior de la CLI de gcloud. Para actualizar a la versión más reciente, sigue estos pasos:

    gcloud components update
    
  2. Para cada archivo que quieras migrar, especifica uno de los siguientes subcomandos (cron-xml-to-yaml, datastore-indexes-xml-to-yaml, dispatch-xml-to-yaml o queue-xml-to-yaml) y el nombre del archivo:

    gcloud beta app migrate-config queue-xml-to-yaml MY-QUEUE-XML-FILE.xml
    
  3. Comprueba manualmente el archivo convertido antes de implementarlo en producción.

    Para ver un ejemplo de conversión correcta de un archivo xml a yaml, consulta las pestañas Migrar archivos manualmente.

Migrar tus archivos manualmente

Para migrar manualmente tus archivos xml a archivos yaml, sigue estos pasos:

cron.yaml

Crea un archivo cron.yaml con un objeto cron que contenga una lista de objetos, cada uno con campos que correspondan a cada uno de los atributos de la etiqueta <cron> de tu archivo cron.xml, como se muestra a continuación.

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

Archivo 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 obtener más información, consulta la documentación de referencia de cron.yaml.

dispatch.yaml

Crea un archivo dispatch.yaml con un objeto dispatch que contenga una lista de objetos, cada uno con campos que correspondan a los atributos de la etiqueta <dispatch> de tu archivo dispatch.xml, tal como se muestra a continuación.

Archivo dispatch.yaml convertido:

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

Archivo 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 obtener más información, consulta la referencia de dispatch.yaml

index.yaml

Crea un archivo index.yaml con un objeto indexes que contenga una lista de objetos, cada uno con campos que correspondan a los atributos de la etiqueta <datastore-index> de tu archivo datastore-indexes.xml, como se muestra a continuación.

Archivo 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

Archivo 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 obtener más información, consulta la documentación de referencia de index.yaml.

queue.yaml

Crea un archivo queue.yaml con un objeto queue que contenga una lista de objetos, cada uno con campos que correspondan a los atributos de la etiqueta <queue> de tu archivo queue.xml, tal como se muestra a continuación.

Archivo 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

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