El SDK independiente de App Engine quedó obsoleto el 30 de julio de 2019, y ya no está disponible. En la siguiente tabla, se enumeran las características y sus alternativas recomendadas:
| Obsoleto | Acción recomendada |
|---|---|
| SDK independiente de App Engine | Descarga Google Cloud CLI |
| Acceder a las API heredadas de App Engine mediante el SDK de App Engine | Migrar a un servicio sin empaquetar de Google Cloud o de terceros, o acceder a servicios en paquetes con el SDK de servicios de App Engine si usas un entorno de ejecución de segunda generación |
Comandos appcfg |
Migrar de AppCfg a la línea de comandos de gcloud |
Comandos dev_appserver.sh |
Para desarrollo local, ejecuta el comando java_dev_appserver.sh desde el directorio bin de la CLI de gcloud. |
Complemento basado en el SDK de Java en App Engine para Maven (com.google.appengine.appengine-maven) |
Migra al complemento de Maven basado en la CLI de gcloud |
Complemento basado en el SDK de Java en App Engine para Gradle (com.google.appengine.appengine-gradle) |
Migra al complemento de Gradle basado en CLI de gcloud |
Formatos de archivo cron.xml, datastore-index.xml, dispatch.xml y queue.xml |
Migra automáticamente con la herramienta de gcloud beta app migrate-config o migra tus xml a tus archivos yaml de forma manual. |
Cronograma de migración
30 de julio de 2019: La herramienta independiente basada en el SDK de App Engine está obsoleta. 30 de agosto de 2020: El SDK independiente de App Engine no está disponible para su descarga y podría no funcionar si se usa. 30 de agosto de 2020: Google dio de baja y quitó la asistencia al SDK independiente de App Engine.
Características no compatibles con versiones anteriores
Dada que la herramienta de appcfg y del SDK independiente de App Engine han quedado obsoletos, no se admiten las siguientes funciones en la CLI de gcloud este momento:
- Descargas de los archivos de tu aplicación con AppCfg.
Migra formatos de archivo XML a YAML
La CLI de gcloud no admite los siguientes formatos de archivo:
cron.xmldatastore-index.xmldispatch.xmlqueue.xml
Los siguientes ejemplos demuestran cómo migrar tus archivos xml a archivos yaml.
Migra tus archivos de forma automática
Para migrar tus archivos xml de forma automática, sigue estos pasos:
Debes tener la versión 226.0.0 de la CLI de gcloud o una posterior. Para actualizar a la última versión, haz lo siguiente:
gcloud components updatePara cada archivo que desees migrar, especifica uno de los siguientes subcomandos (
cron-xml-to-yaml,datastore-indexes-xml-to-yaml,dispatch-xml-to-yaml,queue-xml-to-yaml) y el nombre del archivo:gcloud beta app migrate-config queue-xml-to-yaml MY-QUEUE-XML-FILE.xmlRealiza una doble comprobación del archivo convertido antes de realizar la implementación en producción.
Para obtener una conversión de muestra exitosa de un archivo
xmla un archivoyaml, consulta las pestañas Migra los archivos de forma manual.
Migra tus archivos de forma manual
Para migrar de forma manual tus archivos xml a archivos yaml, haz lo siguiente:
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> en 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 cada uno de los atributos de la etiqueta <dispatch> en tu archivo dispatch.xml, 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 documentación de 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 cada uno de los atributos de la etiqueta <datastore-index> en 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 cada uno de los atributos de la etiqueta <queue> en tu archivo queue.xml, 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>