Guía de inicio rápido: Agrega una tarea a una cola de Cloud Tasks

Agregar una tarea a una cola de Cloud Tasks

Las siguientes instrucciones te permiten probar las operaciones básicas mediante colas de Cloud Tasks a través de la API de Cloud Tasks :

  1. Antes de comenzar (configura tu entorno)
  2. Configura el código de muestra
  3. Cómo crear una cola
  4. Cómo crear una tarea y agregarla a la fila
  5. Haz una limpieza de tus recursos

Antes de comenzar

A fin de configurar tu entorno de Cloud para esta guía de inicio rápido, crea un proyecto de Google Cloud y agrega una aplicación de App Engine con la facturación habilitada. Si ya tienes una cuenta de facturación cuando creas el proyecto de Google Cloud, la facturación se habilita de forma automática.

Para obtener más información sobre los proyectos de Google Cloud, las aplicaciones de App Engine y la facturación en general, consulta esta página. Para obtener más información sobre cómo usar objetivos HTTP, consulta Crea tareas de destino HTTP.

  1. Crea o selecciona un proyecto de Google Cloud:
    Ir a la página de App Engine
    1. Usa los botones de la esquina superior derecha para seleccionar un nombre de proyecto existente o crear uno nuevo.
    2. Anote el ID del proyecto en el cuadro desplegable que se encuentra en la esquina superior izquierda. Sirve como parámetro para tus solicitudes de Cloud Tasks.
  2. Agrega una aplicación de App Engine a tu proyecto:
    1. En la página Bienvenido a App Engine, haga clic en Crear aplicación.
    2. Selecciona una región para tu aplicación. Esta ubicación servirá como parámetro LOCATION_ID para tus solicitudes de Cloud Tasks, así que anótala. Ten en cuenta que hay dos ubicaciones, llamadas europe-west y us-central en los comandos de App Engine, que se llaman respectivamente, europe-west1 y us-central1, en los comandos de Cloud Tasks.
    3. En la página Comenzar, solo haz clic en Siguiente. Te ocuparás de esto más adelante. Si este es un proyecto nuevo, se compila el entorno de ejecución.
    4. Si aparece la ventana emergente Habilitar facturación, selecciona tu cuenta de facturación. Si no tienes una cuenta de facturación, haz clic en Crear cuenta de facturación y sigue los pasos del asistente.
    5. En la página Próximos pasos, haz clic en I'll do this later. Accederás a las muestras y descargarás el SDK más adelante.

  3. Habilita la API de Cloud Tasks.
    Ir a la página API de Cloud Tasks
  4. Configura la autenticación en la API.
    1. Sigue las instrucciones para crear una cuenta de servicio. Descarga el archivo con la clave JSON asociada a la cuenta y almacénala de manera local. La clave de la cuenta de servicio autoriza a tu código local para acceder a Google Cloud de manera programática.
    2. En las muestras, se usan las bibliotecas cliente de Google Cloud para interactuar con App Engine, por lo que debes configurar una variable de entorno que apunte a la clave que descargaste antes, a fin de que la biblioteca la autentique y autorice tus solicitudes. Es posible crear tus solicitudes sin usar las bibliotecas cliente, pero te ayudan a administrar los detalles de una comunicación de bajo nivel con el servidor, incluida la autenticación.
  5. Instala y configura la CLI de gcloud. Esto te brinda acceso a la herramienta gcloud.

Configura la muestra

En estas muestras, se proporciona un framework para intentar agregar tareas a las colas de Cloud Tasks mediante la API de Cloud Tasks .

C#

La muestra de C# consta de dos apps, una (CreateAppEngineTask) que se ejecuta de manera local como una herramienta de línea de comandos para crear tareas y agregarla a la cola, y otra (CloudTasks) implementada en App Engine Flex como un trabajador para "procesar" la tarea.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Asegúrate de tener instalado el SDK de.NET Core versión 2.0 o una versión más reciente.

  2. Asegúrate de haber inicializado la herramienta de gcloud y de haberla configurado para usar el proyecto de Google Cloud que creaste antes.

  3. Clona el repositorio de la aplicación de muestra en tu máquina local:

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples

  4. Navega al directorio que contiene el código de muestra de CreateTask:

    cd dotnet-docs-samples/cloudtasks/api/TasksSample/

  5. Instala todas las dependencias:

    dotnet restore

  6. Navega al directorio (dotnet-docs-samples/cloudtasks/appengine/) que contiene el código de muestra de CloudTasks y, luego, instala todas las dependencias:

    dotnet restore

  7. Compila la aplicación y prepárala para la implementación:

    dotnet publish

  8. Implementa el servicio de trabajador (CloudTasks) en App Engine Flex:

    gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml

  9. Verifica que la página de índice esté en uso:

    gcloud app browse

    Tu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ y muestra Hello, World!.

Python

La app de muestra de Python consta de dos archivos, uno (create_app_engine_queue_tasks.py) que se ejecuta de manera local como una herramienta de línea de comandos y agrega tareas a la cola, y otro (main.py) implementado en App Engine como un trabajador para la tarea.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Clona el repositorio de la aplicación de muestra en tu máquina local:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

  2. Navega al directorio que contiene el código de muestra:

    cd python-docs-samples/appengine/flexible/tasks/

  3. Instala todas las dependencias:

    pip install -r requirements.txt

  4. Asegúrate de haber inicializado la herramienta gcloud y de haberla configurado para usar el proyecto que creaste antes.

  5. Implementa el servicio del trabajador (main.py) en App Engine:

    gcloud app deploy

  6. Verifica que la página de índice esté en uso:

    gcloud app browse

    Tu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ y muestra Hello, World!.

Java

La app de muestra de Java 8 consta de dos archivos, uno (CreateTask.java) se ejecuta de forma local como una herramienta de línea de comandos para crear tareas y agrega tareas a la cola, y otro (TaskServlet.java) implementado en App Engine como un trabajador para procesar la tarea. Para ejecutar la muestra con Java 11, consulta Ejecuta código de manera asíncrona de Java 11.

Nota: Para usar la app de muestra de Java, también debes tener estos componentes adicionales:

  • Maven
  • El componente app-engine-java de la CLI de gcloud
  • El complemento de Maven de App Engine, que ya se especificó en el archivo pom.xml proporcionado para la muestra

Si quieres obtener más información sobre estos componentes, consulta Usa Apache Maven y el complemento de App Engine y Objetivos y parámetros del complemento de Maven.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Clona el repositorio de la aplicación de muestra en tu máquina local:

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git

  2. Navega al directorio de nivel superior de la muestra de Tasks:

    cd java-docs-samples/appengine-java8/tasks/quickstart/

  3. Asegúrate de haber inicializado la herramienta gcloud y de haberla configurado para usar el proyecto que creaste antes.

  4. Compila y ejecuta la herramienta de línea de comandos local (CreateTask.java):

    mvn appengine:run

  5. Implementa el servicio del trabajador (TaskServlet.java) en App Engine:

    mvn appengine:deploy

PHP

La muestra de PHP consta de dos archivos, uno (/snippets/src/create_task.php) que se ejecuta de manera local como una herramienta de línea de comandos y crea tareas en la cola, y otro (/apps/handler/index.php) implementado en App Engine como un trabajador para la tarea.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Clona el repositorio de la aplicación de muestra en tu máquina local:

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples

  2. Navega al directorio de nivel superior de la muestra de Tasks:

    cd php-docs-samples/appengine/standard/tasks

    En el directorio tasks, verás dos subdirectorios:

    • apps/handler: Contiene el código para que el servicio de trabajador se implemente en App Engine.
    • snippets: Contiene el código de la herramienta de línea de comandos local.
  3. Asegúrate de tener instalado Composer. Si deseas usarlo de forma local, asegúrate de que composer.phar esté ubicado en ambos subdirectorios. Consulta la documentación de Composer para obtener información sobre la ejecución local y la ejecución global.

  4. En el directorio snippets, instala todas las dependencias:

    composer install
    o solo para locales:
    php composer.phar install

  5. En el directorio apps/handler, instala todas las dependencias:

    composer install
    o solo para locales:
    php composer.phar install

  6. Asegúrate de haber inicializado la herramienta de gcloud y de haberla configurado para usar el proyecto de Google Cloud que creaste antes.

  7. Desde el directorio apps/handler, implementa el servicio de trabajador en App Engine mediante el comando gcloud app deploy:

    gcloud app deploy

  8. Verifica que la app que contiene el servicio esté en ejecución:

    gcloud app browse

    Tu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ y muestra Hello, World!.

Go

La muestra de Golang consta de dos archivos, uno (tasks/create_task/create_task.go) que se ejecuta de manera local como herramienta de línea de comandos y agrega tareas a la cola, y otro (tasks/handle_task/handle_task.go) implementado en App Engine como un trabajador para la tarea.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Asegúrate de que instalaste el componente gcloud de App Engine para Go:

    gcloud components install app-engine-go

  2. Asegúrate de haber inicializado la herramienta gcloud y de haberla configurado para usar el proyecto que creaste antes.

  3. Copia el repositorio de la aplicación de muestra en tu máquina local:

    go get github.com/GoogleCloudPlatform/golang-samples/appengine/go11x/tasks/...

  4. Navega al directorio tasks/handle_task del código de muestra del trabajador.

    cd golang-samples/appengine/go11x/tasks/handle_task

  5. Observe el archivo app.yaml, que contiene la información de configuración necesaria.

  6. Implementa el servicio del trabajador (handle_task.go) en App Engine:

    gcloud app deploy

  7. Verifica que la app que contiene el servicio esté en ejecución:

    gcloud app browse

    Tu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ y muestra Hello, World!.

Node.js

La muestra de Node.js consta de dos archivos, uno (createTask.js) que se ejecuta de manera local como una herramienta de línea de comandos y agrega tareas a la cola, y otro (server.js) implementado en App Engine como un trabajador para "procesar" la tarea.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Clona el repositorio de la aplicación de muestra en tu máquina local:

    git clone https://github.com/googleapis/nodejs-tasks.git

  2. Navega al directorio que contiene el código de muestra:

    cd nodejs-tasks/samples

  3. Instala todas las dependencias.

    Puedes usar npm:

    npm install
    O puedes usar yarn:
    yarn install

  4. Asegúrate de haber inicializado la herramienta gcloud y de haberla configurado para usar el proyecto que creaste antes.

  5. Implementa el servicio del trabajador (server.js) en el entorno estándar de App Engine:

    gcloud app deploy app.yaml

  6. Verifica que la app que contiene el servicio esté en ejecución:

    gcloud app browse

    Tu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ y muestra Hello, World!.

Ruby

La muestra de Ruby consiste en dos archivos, uno (create_Task.rb) que se ejecuta de forma local como una herramienta de línea de comandos y crea tareas en la cola, y otro (app.rb) implementado en App Engine como un trabajador para la tarea.

Para descargar e instalar la muestra, sigue estos pasos:

  1. Clona el repositorio de la aplicación de muestra en tu máquina local:

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

  2. Navega al directorio que contiene el código de muestra:

    cd ruby-docs-samples/appengine/cloud-tasks

  3. Instala las dependencias:

    bundle install

  4. Asegúrate de haber inicializado la herramienta gcloud y de haberla configurado para usar el proyecto que creaste antes.

  5. Implementa el servicio de trabajador (app.rb) en el entorno flexible de App Engine:

    gcloud app deploy app.yaml

  6. Verifica que la app que contiene el servicio esté en ejecución:

    gcloud app browse

    Tu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ y muestra Hello, World!.

Para obtener más información sobre la creación de controladores de tareas de App Engine, consulta Crea controladores de tareas de App Engine.

Crea una cola de Cloud Tasks

Usa la función de administración de colas gcloud de la CLI de gcloud para crear tu cola en el entorno que preparaste antes.

  1. En la línea de comandos, ingresa lo siguiente:

    gcloud tasks queues create my-queue

  2. Espera un poco a que se inicialice la cola y, luego, usa describe para verificar que se haya creado de forma correcta:

    gcloud tasks queues describe my-queue

  3. Verifica que el resultado sea similar a este:

    name: projects/[PROJECT_ID]/locations/[LOCATION_ID]/queues/my-appengine-queue # Note these ids
    rateLimits:
      maxBurstSize: 100
      maxConcurrentDispatches: 1000
      maxDispatchesPerSecond: 500.0
    retryConfig:
      maxAttempts: 100
      maxBackoff: 3600s
      maxDoublings: 16
      minBackoff: 0.100s
    state: RUNNING
    

Agregar una tarea a la cola de Cloud Tasks

C#

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Configura las siguientes variables de entorno en tu máquina, ya sea de forma manual, en el código de tu app de muestra o mediante un alias. La app de muestra usa estas variables para crear la solicitud que agrega tareas a tu cola:

    export GOOGLE_PROJECT_ID=my-project-id # The project ID you set up above
    export GCP_QUEUE=my-queue # the queue you created above
    export LOCATION_ID=my-location-id # The region in which your queue is running

    Puedes encontrar el ID de ubicación para la app de App Engine mediante el siguiente comando de gcloud:

    gcloud tasks locations list

  2. Navega a la carpeta TasksSample:

    cd ../api/TasksSample

  3. Con test, crea una tarea y agrega una carga útil, la string 'hello'. La CloudTasksapp que implementaste antes tiene un extremolog_payload que procesa la carga útil mediante el registro.

    dotnet test

  4. Verifica el registro para asegurarte de que la tarea haya alcanzado el extremo:

    gcloud app logs read

Python

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de tu app de muestra o mediante un alias. La app de muestra usa estas variables para crear la solicitud que agrega tareas a tu cola:

    export PROJECT_ID=PROJECT_ID # The project ID you set up above
    export LOCATION_ID=LOCATION_ID # The region in which your queue is running
    export QUEUE_ID=my-queue # The queue you created above
    Nota: Puedes encontrar el ID de ubicación mediante el siguiente comando de gcloud:
    gcloud tasks locations list

  2. Usa el create_app_engine_queue_task.py local para crear una tarea y agrega una carga útil de hello. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:

    python create_app_engine_queue_task.py --project=$PROJECT_ID
    --location=$LOCATION_ID --queue=$QUEUE_ID --payload=hello

  3. Verifica que se haya recibido la carga útil:

    gcloud app logs read

Java

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de tu app de muestra o mediante un alias. La app de muestra las usa para crear la solicitud que agrega la tarea a tu cola:

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID # The project ID you set up above
    export LOCATION_ID=LOCATION_ID # The region in which your queue is running
    export QUEUE_ID=my-queue # The queue you created above
    Nota: Puedes encontrar el ID de ubicación mediante el siguiente comando de gcloud:
    gcloud tasks locations list

  2. Crea una tarea dirigida al extremo /task/create en el servlet que implementaste, con una carga útil de hello. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:

    mvn exec:java -Dexec.mainClass="com.example.task.CreateTask"
      -Dexec.args="--project-id $GOOGLE_CLOUD_PROJECT
      --queue $QUEUE_ID --location $LOCATION_ID --payload hello"
    

  3. Revisa los registros para verificar que se haya recibido la carga útil:

    gcloud app logs read

PHP

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Navega al directorio snippets.

  2. Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de tu app de muestra o mediante un alias. La app de muestra las usa para crear la solicitud que agrega la tarea a tu cola:

    export PROJECT_ID=PROJECT_ID # The project ID from above
    export LOCATION_ID=LOCATION_ID # The region in which your queue is running
    export QUEUE_ID=my-queue # The queue you created above
    Nota: Puedes encontrar el ID de ubicación mediante el siguiente comando de gcloud:
    gcloud tasks locations list

  3. Usa el fragmento local create_task.php a fin de crear una tarea y agregar una carga útil de hello. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:

    php src/create_task.php $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
    

  4. Revisa los registros para verificar que se haya recibido la carga útil:

    gcloud app logs read

Go

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Si aún estás en el directorio tasks/handle_task, navega al directorio tasks/create_task.

  2. Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de tu app de muestra o mediante un alias. El cliente usa esta información para crear la solicitud:

     export PROJECT_ID=PROJECT_ID # The project ID from above
     export LOCATION_ID=LOCATION_ID # The region in which your queue is running
     export QUEUE_ID=my-queue # The queue you created above
    Nota: Puedes encontrar el ID de ubicación mediante el siguiente comando de gcloud:
    gcloud tasks locations list

  3. Crea una tarea con una carga útil de hello y agrégala a tu cola. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:

    go run . $PROJECT_ID $LOCATION_ID $QUEUE_ID hello 

  4. Para verificar que se haya recibido la carga útil, muestra los registros del servicio de trabajador:

    gcloud app logs read

Node.js

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de tu app de muestra o mediante un alias. El cliente usa esta información para crear la solicitud:

    export PROJECT_ID=PROJECT_ID # The project ID from above
    export LOCATION_ID=LOCATION_ID # The region in which your queue is running
    export QUEUE_ID=my-queue # The queue you created above
    Nota: Puedes encontrar el ID de ubicación mediante el siguiente comando de gcloud:
    gcloud tasks locations list

  2. Crea una tarea con una carga útil de hello y agrégala a tu cola. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:

    node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello 

  3. Para verificar que se haya recibido la carga útil, muestra los registros del servicio de trabajador:

    gcloud app logs read

Ruby

Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:

  1. Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de tu app de muestra o mediante un alias. El cliente usa esta información para crear la solicitud:

    export GOOGLE_CLOUD_PROJECT=my-project-id # The project ID from above
    export LOCATION_ID=my-location-id # The region in which your queue is running
    export QUEUE_ID=my-queue # The queue you created above
    Nota: Puedes encontrar el ID de ubicación mediante el siguiente comando de gcloud:
    gcloud tasks locations list

  2. Crea una tarea con una carga útil de hello y agrégala a tu cola. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:

    ruby create_task.rb $GOOGLE_CLOUD_PROJECT_ID $LOCATION_ID $QUEUE_ID hello

  3. Para verificar que se haya recibido la carga útil, muestra los registros del servicio de trabajador:

    gcloud app logs read

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. En la consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Próximos pasos