Si bien puedes usar un queue.yaml
archivo para administrar colas, la combinación de métodos de administración de colas
puede generar resultados inesperados. En esta guía, se explican los riesgos de combinar estos métodos y se muestra cómo resolver problemas de configuración comunes.
La API de Cloud Tasks proporciona una interfaz independiente al servicio Task Queue de App Engine. Con esta interfaz, puedes administrar colas a través de la Google Cloud consola o el Google Cloud CLI. Las colas que creas con la API de Cloud Tasks son accesibles desde el SDK de App Engine, una colección de APIs específicas de la plataforma, herramientas independientes y archivos de tiempo de ejecución, y las colas creadas con el SDK de App Engine son accesibles desde la API de Cloud Tasks.
Para mantener la compatibilidad, puedes usar queue.yaml, el archivo de configuración del SDK de App Engine, para crear y configurar colas para la API de Cloud Tasks. Sin embargo, la administración de colas con este archivo y la API de Cloud Tasks puede causar problemas que se detallan en esta guía.
Antes de comenzar
Si eres nuevo en Cloud Tasks o App Engine, usa la API de Cloud Tasks exclusivamente para administrar tus colas y evita usar queue.yaml. Los métodos de administración de colas de Cloud Tasks te brindan más opciones para crear, actualizar y borrar colas.
Si ya usas queue.yaml, considera cambiar a
los métodos de administración de colas de Cloud Tasks solo si comprendes los
riesgos de combinar métodos de administración de colas.
Aplica un método de administración de colas
Para evitar la combinación de métodos de administración de colas, puedes crear una app web o una herramienta de línea de comandos para crear, actualizar y borrar colas. Si esa herramienta usa métodos de administración de colas de Cloud Tasks o queue.yaml es un detalle de implementación que los usuarios no necesitan conocer. Si aplicas el uso de la herramienta, puedes asegurarte de que no haya una combinación inadvertida de métodos.
Otorga la función de Cloud Tasks Queue Admin Identity and Access Management (IAM) a la herramienta y exige que los usuarios se autentiquen. Para obtener más información sobre
la administración de acceso, consulta
Configura la seguridad de las colas.
Demoras en la configuración de las colas
Los cambios en la configuración de las colas pueden tardar varios minutos en aplicarse. Por ejemplo, si llamas a CreateQueue o UpdateQueue, podrían transcurrir varios minutos antes de que puedas llamar a CreateTask sobre esa cola con éxito.
Cola default de App Engine
La cola de App Engine denominada default recibe un tratamiento especial en el SDK de App Engine y en la API de Cloud Tasks.
¿Cuándo se crea la cola default? | |
|---|---|
Si la cola |
|
| ¿Qué restricciones aplica Cloud Tasks? | |
Para preservar la compatibilidad con App Engine,
Cloud Tasks aplica las siguientes restricciones con respecto a la
|
|
Riesgos de combinar métodos de administración de colas
Para el servicio subyacente, los archivos queue.yaml son definitivos. Si se sube un archivo
queue.yaml que omite colas existentes en tu proyecto, sin importar cómo
se crearon, esas colas quedan inhabilitadas o se
detenidas. Por ejemplo, si usas la API de Cloud Tasks para llamar a CreateQueue o UpdateQueue y, luego, subes un archivo queue.yaml que los omite, las colas quedan inhabilitadas. Luego, deberás
reanudar las colas inhabilitadas.
La combinación de métodos de administración de colas puede generar un comportamiento inesperado. Por ejemplo, considera las siguientes situaciones:
Situación 1
Llamas a CreateQueue para crear una cola llamada cloud-tasks-queue y, luego, subes un archivo queue.yaml con el siguiente contenido:
queue:
- name: queue-yaml-queue
Esto genera los siguientes estados de cola:
- La cola llamada
cloud-tasks-queuey cualquier otra cola preexistente están en estadoDISABLED. - La cola llamada
queue-yaml-queueestá en estadoRUNNING.
Situación 2
Usas la API de Cloud Tasks para inhabilitar una cola, pero luego aparece en un archivo queue.yaml que se subió. Se reanudó la cola.
Situación 3
Borras una cola con el método DeleteQueue y luego aparece en un archivo queue.yaml. Es posible que la carga de queue.yaml falle, ya que
los nombres de las colas no pueden reutilizarse durante varios días
después de la eliminación.
Depura con registros de auditoría
Puedes inspeccionar los registros de auditoría de actividad del administrador de tu proyecto y recuperar un historial de cambios de configuración de colas, que incluye las operaciones de creación, actualización y eliminación de colas.
Por ejemplo, si una carga de queue.yaml inhabilita una cola existente, puedes ejecutar
el siguiente comando para mostrar un
Disabled queue QUEUE_NAME mensaje de registro a través del
com.google.appengine.legacy.queue_updated método:
gcloud logging read \
'protoPayload.methodName=
(com.google.appengine.legacy.queue_created OR
com.google.appengine.legacy.queue_updated OR
google.cloud.tasks.v2.CloudTasks.CreateQueue OR
google.cloud.tasks.v2.CloudTasks.UpdateQueue OR
google.cloud.tasks.v2.CloudTasks.DeleteQueue)'
Para obtener más información, consulta Lee las entradas de registro.
Reanuda una cola inhabilitada por una carga de queue.yaml
Si mezclas métodos de administración de colas, subir un archivo queue.yaml
podría inhabilitar accidentalmente una cola creada a través de la API de Cloud Tasks.
Para reanudar la cola, puedes llamar a ResumeQueue sobre la cola o agregarla a queue.yaml y subir el archivo.
Si antes estableciste un procesamiento personalizado
rate en la queue.yaml
configuración, ResumeQueue restablece la cola a la rate. Esto se
refleja en el
maxDispatchesPerSecond
campo de la respuesta a ResumeQueue.
Resuelve problemas de cuota
Si usas queue.yaml para crear tus colas, tu proyecto tiene una cuota predeterminada
para la
cantidad máxima de colas que puedes
crear. Las colas creadas con la API de Cloud Tasks también tienen una
cuota predeterminada. Al igual que en otros casos, la mezcla de los métodos de queue.yaml y la API de Cloud Tasks puede generar resultados inesperados.
Por ejemplo, cuando creas colas con queue.yaml y, luego, recibes un aumento de cuota, si usas la API de Cloud Tasks para crear colas adicionales, es posible que recibas errores de cuota. Para resolver este problema, puedes administrar tus cuotas con la Google Cloud consola. Si deseas obtener más información, consulta
Administra tus cuotas con la consola.
¿Qué sigue?
- Descripción general de la API de REST de Cloud Tasks
- Descripción general de la API de RPC de Cloud Tasks
- Referencia de
queue.yaml