Agrega una tarea de App Engine a una cola de Cloud Tasks
En esta guía de inicio rápido, se muestra cómo agregar una tarea de App Engine a una cola de Cloud Tasks con la API de Cloud Tasks.
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén información para otorgar roles.
-
Crea un proyecto de: Google Cloud
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto de que estás creando. -
Selecciona el Google Cloud proyecto de que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto de.
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita la API de Cloud Resource Manager y Cloud Tasks:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén información para otorgar roles.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se muestra un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén información para otorgar roles.
-
Crea un proyecto de: Google Cloud
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto de que estás creando. -
Selecciona el Google Cloud proyecto de que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto de.
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita la API de Cloud Resource Manager y Cloud Tasks:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén información para otorgar roles.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se muestra un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
- La
cuenta de servicio predeterminada de App Engine
se crea automáticamente cuando usas App Engine. Puedes usar esta cuenta de servicio cuando pruebes esta guía de inicio rápido. Sin embargo, según la configuración de la política de la organización, es posible que a la cuenta de servicio predeterminada no se le otorgue automáticamente el rol de
Editoren tu proyecto. Si ese es el caso, debes otorgar a la cuenta de servicio los siguientes roles:- Administrador de Artifact Registry (
roles/artifactregistry.admin) - Escritor de Artifact Registry Create-on-Push (
roles/artifactregistry.createOnPushWriter) - Administrador de Compute (
roles/compute.admin) - Escritor de registros (
roles/logging.logWriter) - Visualizador de objetos de Storage (
roles/storage.objectViewer)
- Administrador de Artifact Registry (
Agrega una aplicación de App Engine
Cuando segmentas una tarea de App Engine y antes de que puedas implementar una app en el entorno estándar de App Engine, debes agregar una aplicación de App Engine a tu proyecto.
En la Google Cloud consola, ve a la página App Engine.
En el diálogo Te damos la bienvenida a App Engine, haz una de las siguientes acciones:
Si ya creaste una aplicación de App Engine y se muestra el mensaje Se creó tu aplicación de App Engine, puedes omitir los pasos restantes de esta sección y continuar con los pasos de la sección Instala y, luego, implementa la muestra.
o
Si aún no creaste una aplicación de App Engine, haz clic en Crear aplicación y continúa con los pasos restantes de esta sección.
Selecciona una región para tu aplicación y anótala.
Ten en cuenta que
europe-westyus-centralse denominaneurope-west1yus-central1, respectivamente, en los comandos de Cloud Tasks.No selecciones una cuenta de servicio; se usa la cuenta de servicio predeterminada de App Engine.
Haz clic en Siguiente.
La aplicación se configura y se crea. Esto puede tardar un par de minutos.
No descargues el SDK de Cloud; en su lugar, haz clic en Lo haré más tarde.
Deberías ver el mensaje Se creó tu aplicación de App Engine.
Instala y, luego, implementa la muestra
La muestra de Node.js que se usa en esta guía de inicio rápido consta de dos archivos: createTask.js se ejecuta de forma local como una herramienta de línea de comandos para crear y agregar tareas a la cola de Tasks; server.js se implementa en App Engine como un servicio de trabajador para procesar la tarea.
En tu terminal, clona el repositorio de la aplicación de muestra en tu máquina local.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitNavega al directorio que contiene el código de muestra.
cd nodejs-docs-samples/cloud-tasks/snippetsInstala todas las dependencias con un administrador de paquetes de Node.js.
Puedes usar NPM:
npm installO bien, puedes usar Yarn:
yarn installImplementa el servicio de trabajador (
server.js) en el entorno estándar de App Engine.gcloud app deploy app.yamlAsegúrate de que la app que contiene el servicio se esté ejecutando.
gcloud app browseEn tu navegador, ve al vínculo proporcionado. Por ejemplo:
https://PROJECT_ID.uc.r.appspot.com/Deberías ver
Hello, World!.
Crea una cola de Cloud Tasks
Usa el gcloud tasks queues create
comando para crear tu cola en el entorno que preparaste.
En tu terminal, crea una cola que registre todas las operaciones.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONReemplaza lo siguiente:
QUEUE_NAME: un nombre para tu cola de Cloud TasksREGION: la región en la que implementaste tu app
Espera a que se inicialice la cola y, luego, verifica que se haya creado correctamente.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONEl resultado debería ser similar al siguiente ejemplo:
name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
Agrega una tarea a la cola de Cloud Tasks
Crea una tarea, agrégala a la cola que creaste y entrégala al servicio de trabajador.
Configura las siguientes variables de entorno: El cliente usa esta información para crear la solicitud.
export PROJECT_ID=PROJECT_ID export LOCATION_ID=REGION export QUEUE_ID=QUEUE_NAMECrea una tarea con la carga útil
helloy agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos de la solicitud que el servicio de trabajador necesite para procesar la tarea.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID helloMuestra los registros del servicio de trabajador para verificar que la tarea se haya ejecutado.
gcloud app logs readLos registros deberían verse de la siguiente manera:
2024-06-20 15:00:00 default[20240620t143852] "POST /log_payload HTTP/1.1" 200 2024-06-20 15:00:00 default[20240620t143852] App listening on port 8081 2024-06-20 15:00:00 default[20240620t143852] Press Ctrl+C to quit. 2024-06-20 15:00:00 default[20240620t143852] Received task with payload: hello
Limpia
Para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página, borra el Google Cloud proyecto de que tiene los recursos.
Borra un Google Cloud proyecto de:
gcloud projects delete PROJECT_ID
Como alternativa, puedes borrar los recursos que creaste:
Borra la cola de Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION