Migra al complemento de Maven basado en el SDK de Cloud

Si usas el complemento basado en el SDK de Java de App Engine (com.google.appengine.appengine-maven) y deseas pasar al SDK de Cloud nuevo, migra al complemento basado en el SDK de Cloud (com.google.cloud.tools.appengine-maven).

Beneficios del complemento basado en el SDK de Cloud

La actualización al complemento nuevo brinda estos beneficios:

  • Usa las mismas credenciales de autenticación que todos los otros comandos basados en el SDK de Cloud, que se producen desde el flujo estándar gcloud auth login.

  • Es compatible con el entorno flexible de App Engine.

  • Actualiza de manera automática el servidor de desarrollo local como parte del flujo de actualización estándar del SDK de Cloud.

  • Admite la implementación de las configuraciones de servicio de App Engine (cron, colas, DoS, envío), de forma independiente de tu servicio.

Diferencias destacadas

Antes de migrar, ten en cuenta estas diferencias importantes:

Dependencia del SDK de Cloud
El complemento anterior se ejecuta sin dependencias específicas del entorno local, además de Java, pero el nuevo requiere que instales el SDK de Cloud.
Sin generación de documentos de descubrimiento de extremos
El complemento nuevo no genera documentos de descubrimiento de extremos; esta característica está disponible en un complemento distinto. La ejecución del backend de extremos ya no requiere la generación de este archivo en un paso de compilación, ya que ahora el servidor lo genera en el entorno de ejecución. Usa el complemento nuevo solo si necesitas generar bibliotecas cliente como las de iOS o Android. Si quieres obtener más información sobre los complementos nuevos, revisa la guía Migrar a marcos de trabajo de Endpoints para App Engine.
El formato de archivo EAR ya no es compatible
El complemento nuevo ya no admite el formato de archivo EAR para implementar y ejecutar varios servicios a la vez.
Comando de implementación nuevo
El complemento anterior llama al comando appcfg para implementar aplicaciones, mientras que el complemento nuevo implementa con la nueva CLI de gcloud.
No se incluyen las tareas de mejora de JPA o JDO de Datanucleus
El complemento nuevo no admite mejoras de Datanucleus de ningún tipo. Si tu proyecto usa la asistencia de la mejora JDO o JPA de Datanucleus del complemento anterior, debes configurar aparte el complemento de Maven de terceros de Datanucleus (instrucciones para JDO y JPA) cuando migras.

Se admite el uso de los archivos de configuración YAML, pero no los XML.

Cómo migrar al complemento nuevo

Para migrar al complemento nuevo, haz lo siguiente:

  1. Agrega el complemento basado en el SDK de Cloud a tu archivo pom.xml.

    <build>
        <plugins>
           [...]
              <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>2.0.0</version>
                <configuration>
                    <projectId>your-project-ID-goes-here</projectId>
                    <version>1</version>
                </configuration>
            </plugin>
           [...]
        </plugins>
    </build>
    
  2. Especifica tu ID del proyecto de Google Cloud Platform objetivo y el servicio y la versión en la configuración del complemento. Las herramientas nuevas ignoran los elementos de la aplicación y la versión en tu archivo appengine-web.xml.

  3. Prueba tu configuración nueva mediante la ejecución y la implementación de tu aplicación de la siguiente manera:

    1. Ejecuta la app con el nombre calificado del complemento:

        mvn com.google.cloud.tools:appengine-maven-plugin:run
      
    2. Implementa la app con el nombre calificado del complemento:

        mvn com.google.cloud.tools:appengine-maven-plugin:deploy
      

      Asegúrate de que la invocación objetivo del complemento esté en el espacio de nombres si aún tienes el complemento appengine anterior en tu archivo pom.xml.

Si tienes una configuración más personalizada, encontrarás marcas equivalentes de etapa de pruebas, implementación y ejecución local en el complemento nuevo.

Después de verificar que todo funcione según lo esperado, quita com.google.appengine appengine-maven-plugin de tu archivo pom.xml y los elementos de aplicación y versión de tu appengine-web.xml.

Ahora puedes invocar los objetivos de tu complemento nuevo con la notación reducida:

mvn package appengine:deploy

Migra configuraciones de varios servicios basadas en EAR

Con el complemento nuevo, no debes agregar tus servicios en un paquete EAR. En su lugar, debes especificar una lista de servicios para ejecutar desde la configuración de appengine-maven-plugin de cualquiera de tus servicios de App Engine.

Puedes configurar estos servicios para que se ejecuten en tu servicio predeterminado, ya que todos los proyectos de App Engine requieren uno.

Para migrar el proyecto de App Engine basado en EAR a las herramientas nuevas, sigue estos pasos:

  1. Para cada context-root en el archivo application.xml de tu paquete EAR, agrega un elemento de servicio a la configuración de ejecución de appengine-maven-plugin en tus servicios predeterminados. Por ejemplo:

    <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>2.0.0</version>
        <configuration>
            <deploy.projectId>your-project-name</deploy.projectId>
            <deploy.version>your-project-version</deploy.version>
            <services>
                <!-- your default service -->
                <service>${project.build.directory}/${project.name}-${project.version}
                </service>
                <!-- for each service in your EARs application.xml -->
                <service>
                    ${project.parent.basedir}/service-name/target/service-artifact-${project.version}
                </service>
            </services>
        </configuration>
    </plugin>
    
  2. Ejecuta el siguiente comando desde tu directorio de servicios predeterminado para confirmar que tu configuración nueva funciona:

    mvn package appengine:run
    
  3. Después de verificar que tu servicio predeterminado ejecuta todos los servicios de forma local, quita tu paquete EAR por completo.

Si el directorio raíz de tu proyecto contiene solo tus servicios, puedes implementarlos todos con un solo comando de Maven. Primero debes agregar appengine-maven-plugin a tu archivo pom.xml superior y, luego, puedes ejecutar el comando mvn appengine:deploy.

El comando de implementación se itera en cada uno de los servicios de tu proyecto para ubicar sus archivos de configuración y, luego, implementar cada servicio.

Comparación de los comandos de Maven basados en el SDK de App Engine con los basados en el SDK de Cloud

En la siguiente tabla, se muestran las diferentes formas en que se invoca el complemento de Maven, dependiendo de si usas el complemento de Maven basado en el SDK de App Engine o el basado en el SDK de Cloud.

Acción Basado en el SDK de App Engine Basado en el SDK de Cloud
Ejecuta la app de forma local appengine:devserver appengine:run
Implementar una app, una versión o un servicio nuevo appengine:update appengine:deploy o appengine:deployAll
Configurar la versión de la aplicación predeterminada appengine:set_default_version gcloud app services set-traffic o gcloud app versions migrate
Actualizar los trabajos cron de la aplicación appengine:update_cron appengine:deployCron
Actualiza la configuración de despacho de la aplicación. appengine:update_dispatch appengine:deployDispatch
Actualizar la configuración de protección contra DoS de la aplicación appengine:update_dos appengine:deployDos
Actualizar las definiciones de la lista de tareas en cola de la aplicación appengine:update_queues appengine:deployQueue
Actualizar los índices de Datastore appengine:update_indexes appengine:deployIndex
Borrar los índices sin uso de la aplicación appengine:vacuum_indexes gcloud datastore cleanup-indexes
Inicia la versión especificada appengine:start_module_version gcloud app versions start
Detener la versión especificada appengine:stop_module_version gcloud app versions stop
Revertir una actualización en curso. appengine:rollback
Ten en cuenta que también puedes migrar el tráfico a una versión anterior
Usa gcloud app versions start, gcloud app versions stop o gcloud app services set-traffic para migrar a una versión anterior
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java 8