Añadir una tarea de App Engine a una cola de Cloud Tasks
En esta guía de inicio rápido se muestra cómo añadir una tarea de App Engine a una cola de Cloud Tasks mediante la API Cloud Tasks.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- La cuenta de servicio predeterminada de App Engine se crea automáticamente cuando usas App Engine. Puedes usar esta cuenta de servicio para probar esta guía de inicio rápido. Sin embargo, en función de la configuración de la política de tu organización, es posible que no se conceda automáticamente el rol
Editor
a la cuenta de servicio predeterminada en tu proyecto. Si es así, debes conceder 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
) - Editor de registros (
roles/logging.logWriter
) - Lector de objetos de Storage (
roles/storage.objectViewer
)
- Administrador de Artifact Registry (
En la Google Cloud consola, ve a la página App Engine.
En el cuadro de diálogo Bienvenido a App Engine, haga una de las siguientes acciones:
Si ya has creado una aplicación de App Engine y se muestra el mensaje Tu aplicación de App Engine se ha creado, puedes saltarte los pasos restantes de esta sección y seguir los de la sección Instalar y desplegar la muestra.
o
Si aún no has creado una aplicación de App Engine, haz clic en Crear aplicación y sigue los pasos que quedan en esta sección.
Selecciona una región para tu aplicación y anótala.
Ten en cuenta que
europe-west
yus-central
se denominaneurope-west1
yus-central1
, respectivamente, en los comandos de Cloud Tasks.No selecciones ninguna cuenta de servicio. Se usará la cuenta de servicio predeterminada de App Engine.
Haz clic en Siguiente.
La aplicación se configura y se crea. Este proceso puede tardar un par de minutos.
No descargues el SDK de Google Cloud. En su lugar, haz clic en Lo haré más tarde.
Debería aparecer el mensaje Se ha creado tu aplicación de App Engine.
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.git
Ve al directorio que contiene el código de ejemplo.
cd nodejs-docs-samples/cloud-tasks/snippets
Instala todas las dependencias con un gestor de paquetes de Node.js.
Puedes usar NPM:
npm install
También puedes usar Yarn:
yarn install
Despliega el servicio de trabajador (
server.js
) en el entorno estándar de App Engine.gcloud app deploy app.yaml
Comprueba que la aplicación que contiene el servicio esté en ejecución.
gcloud app browse
En tu navegador, ve al enlace proporcionado. Por ejemplo:
https://PROJECT_ID.uc.r.appspot.com/
Debería ver
Hello, World!
.En tu terminal, crea una cola que registre todas las operaciones.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGION
Haz los cambios siguientes:
QUEUE_NAME
: nombre de la cola de Cloud TasksREGION
: la región en la que has implementado tu aplicación
Espera a que se inicialice la cola y, a continuación, comprueba que se ha creado correctamente.
gcloud tasks queues describe QUEUE_NAME \ --location=REGION
La salida debería ser similar a la siguiente:
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
Define 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_NAME
Crea una tarea con una carga útil de
hello
y añádela a tu cola. La carga útil puede ser cualquier dato de la solicitud que el servicio de trabajador necesite para procesar la tarea.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Verifica que la tarea se ha ejecutado mostrando los registros del servicio del trabajador.
gcloud app logs read
Los registros deberían tener un aspecto similar al siguiente:
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
Elimina la cola de Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION
Añadir una aplicación de App Engine
Cuando segmentas tareas de App Engine y antes de desplegar una aplicación en el entorno estándar de App Engine, debes añadir una aplicación de App Engine a tu proyecto.
Instalar y desplegar el ejemplo
El ejemplo 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 añadir tareas a la cola de tareas; server.js
se despliega en App Engine como un servicio de trabajador para procesar la tarea.
Crear una cola de Cloud Tasks
Usa el comando gcloud tasks queues create
para crear la cola en el entorno que has preparado.
Añadir una tarea a la cola de Cloud Tasks
Crea una tarea, añádela a la cola que has creado y envíala al servicio de trabajador.
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
También puedes eliminar los recursos que hayas creado: