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 fila de Cloud Tasks con la API de Cloud Tasks.
Antes de comenzar
- 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.
-
To initialize the gcloud CLI, run the following command:
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.
-
-
Make sure 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
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.
-
-
Make sure 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.
- El
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 tu organización, es posible que a la cuenta de servicio predeterminada
no se le otorgue automáticamente el rol
Editor
en tu proyecto. Si ese es el caso, debes otorga a la cuenta de servicio los siguientes roles:- Administrador de Artifact Registry (
roles/artifactregistry.admin
) - Escritor de creación automática al momento del envío de Artifact Registry (
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 te orientas a 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 consola de Google Cloud, 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 aparece 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 Crea la aplicación y continúa con los pasos restantes de esta sección.
Selecciona una región para tu aplicación y tomar nota de ella.
Ten en cuenta que se llama a
europe-west
yus-central
, respectivamente,europe-west1
yus-central1
en comandos de Cloud Tasks.No selecciones una cuenta de servicio. Se usará la cuenta de servicio predeterminada de App Engine.
Haz clic en Siguiente.
Se configura y crea la aplicación. Este proceso puede tardar unos minutos.
No descargues el SDK de Cloud. en su lugar, haz clic en Lo haré más tarde.
Deberías ver el mensaje Your App Engine application has been created.
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 herramienta de línea de comandos para crear y agregar tareas a la cola de Tasks, y server.js
se implementa en App Engine como un servicio de trabajador para procesar la tarea.
En la terminal, clona el repositorio de la aplicación de ejemplo en tu máquina.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Navega al directorio que contiene el código de muestra.
cd nodejs-docs-samples/cloud-tasks/snippets
Instala todas las dependencias con un administrador de paquetes de Node.js.
Puedes usar NPM:
npm install
O bien, puedes usar Yarn:
yarn install
Implementa el servicio del trabajador (
server.js
) en el entorno estándar de App Engine.gcloud app deploy app.yaml
Asegúrate de que se esté ejecutando la app que contiene el servicio.
gcloud app browse
En 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 la gcloud tasks queues create
.
para crear tu cola en el entorno que preparaste.
En la terminal, crea una cola que registre todas las operaciones.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGION
Reemplaza lo siguiente:
QUEUE_NAME
: Es un nombre para tus tareas de Cloud Tasks. filaREGION
: Es la región en la que implementaste la app.
Espera a que se inicialice la cola y, luego, verifica que se haya creado. con éxito.
gcloud tasks queues describe QUEUE_NAME \ --location=REGION
El 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 a la trabajador de servicio.
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_NAME
Crea una tarea con la carga útil
hello
y agrégala a tu cola. El puede ser cualquier dato de la solicitud que el servicio trabajador necesita procesar la tarea.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Muestra los registros del servicio de trabajador para verificar que la tarea se haya ejecutado.
gcloud app logs read
Los registros deberían ser similares 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
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.
Delete a Google Cloud project:
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