
publicado por wesley chun (@wescpy), promotor de desarrolladores, Google Cloud
Introducción y Antecedentes
El Estación de migración sin servidor La serie tiene como objetivo ayudar a los desarrolladores a modernizar sus aplicaciones que ejecutan uno de los servicios de Google Cloud. plataformas sin servidor. El precedente (Módulo de Migración 18) video muestra cómo agregar el uso de App Engine Servicio de tareas de extracción de cola de tareas a una aplicación de muestra de App Engine de Python 2. El video del Módulo 19 de hoy comienza desde donde lo dejó, migrando el uso de la tarea de extracción a Publicación/suscripción en la nube.
(incrustar)https://www.youtube.com/watch?v=mD7emln-z_Q(/incrustar)
Alejarse de los servicios patentados de App Engine como Cola de tareas hace que las aplicaciones sean más portátiles, dándoles suficiente flexibilidad para:
Entendiendo las migraciones
El Módulo 19 consiste en implementar tres migraciones diferentes en la aplicación de muestra del Módulo 18:
Migrar de App Engine NDB a Cloud NDB
- Migrar tareas de extracción de la cola de tareas de App Engine a Cloud Pub/Sub
- Migrar de Python 2 a Python (2 y) 3
La migración de NDB a Cloud NDB es idéntica a la Módulo 2 contenido de migración, por lo que no se cubre en profundidad en el Módulo 19. La aplicación unique fue diseñada para ser appropriate con Python 2 y 3, por lo que tampoco hay trabajo allí. El módulo 19 se cut back a tres actualizaciones clave:
- Configuración: habilite las API y cree un tema y una suscripción de Pub/Sub
- Cómo se crea el trabajo: Publique mensajes de Pub/Sub en lugar de agregar tareas de extracción
- Cómo se procesa el trabajo: Extraiga mensajes en lugar de arrendar tareas
Además de estos cambios físicos, un obstáculo clave que se debe superar es comprender las diferencias en la terminología entre las tareas de extracción y Pub/Sub. El siguiente cuadro intenta desmitificar esto para que los desarrolladores puedan comprender más fácilmente en qué se diferencian:
![]() |
Diferencias de terminología entre las tareas de extracción de App Engine y Cloud Pub/Sub |
Reflejando el cuadro, estas diferencias se pueden resumir así:
- Con Pull Queues, el trabajo se crea en tirar de las colas mientras el trabajo se envía a Pub/Sub temas
- Cola de tareas extraer tareas son llamados mensajes en Pub/Sub
- Con colas de tareas, trabajadores acceder a tareas de extracción; con Pub/Sub, suscriptores recibir mensajes
- Arrendamiento de una tarea de extracción es lo mismo que extraer un mensaje de un tema de Pub/Sub a través de una suscripción
- Eliminar una tarea de una cola de extracción cuando haya terminado es análogo a con éxito reconocer un mensaje de Pub/Sub
El video guía a los desarrolladores a través de la terminología y los cambios de código descritos anteriormente. A continuación se muestra un pseudocódigo que implementa los cambios clave en la aplicación principal (líneas de código nuevas o actualizadas). en negrita):
![]() |
Migración de tareas de extracción de App Engine Job Queue a Cloud Pub/Sub |
Observe cómo la mayor parte del código, especialmente las operaciones de la aplicación y los modelos de datos, permanecen relativamente sin cambios. Los únicos cambios visibles son el cambio de App Engine NDB y Job Queue a Cloud NDB y Pub/Sub. Las versiones completas de la aplicación antes y después de realizar los cambios se pueden encontrar en la Módulo 18 y Módulo 19 carpetas repo, respectivamente. Además del video, asegúrese de ver el Laboratorio de código del módulo 19 que lo guía paso a paso a través de las migraciones discutidas.
Envolver
El módulo 19 presenta una migración de las tareas de extracción de App Engine a Cloud Pub/Sub, pero los desarrolladores deben tener en cuenta que Pub/Sub en sí no se basa en tareas de extracción. Es un servicio de mensajería asincrónico y escalable con todas las funciones que tiene muchas más funciones que la funcionalidad de extracción proporcionada por Job Queue. Por ejemplo, Pub/Sub tiene otras características como transmisión a BigQuery y empujar la funcionalidad. Pub/Sub push funciona de manera diferente a Tareas de inserción de la cola de tareaspor lo que recomendamos migrar las tareas push a Tareas en la nube en cambio (ver Módulo 8). Para obtener más información sobre todas sus características, consulte el Documentación de pub/sub. Debido a que Cloud Duties no admite la funcionalidad de extracción, recurrimos a Pub/Sub en su lugar para los usuarios de tareas de extracción.
Si bien recomendamos a los usuarios que cambien a las ofertas más recientes de Google Cloud, no se requiere ninguna de esas migraciones y, si opta por hacerlo, puede hacerlo en su propio cronograma. En el otoño de 2021, el equipo de App Engine soporte extendido de muchos de los servicios incluidos a tiempos de ejecución de segunda generación (que tienen un tiempo de ejecución de primera generación), lo que significa que no tiene que migrar a servicios en la nube independientes antes de migrar su aplicación a Python 3. Puede continuar usando Job Queue en Python 3 siempre que actualice su código para acceder a servicios empaquetados desde tiempos de ejecución de próxima generación.
Si usa otros servicios heredados de App Engine, asegúrese de consultar los otros módulos de migración de esta serie. Todo Contenido de la estación de migración sin servidor (codelabs, movies, código fuente (Cuando esté disponible)) se puede acceder en su repositorio de código abierto. Si bien nuestro contenido inicialmente se enfoca en los usuarios de Python, el equipo de Cloud está trabajando para cubrir otros tiempos de ejecución de lenguaje, así que permanezca atento. Para obtener contenido de video adicional, consulte nuestro amplio Serie de expediciones sin servidor.