Guía de inicio rápido para las colas de Cloud Tasks

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

  1. Antes de comenzar (configura el entorno)
  2. Configuración de los códigos de muestra
  3. Crea una cola
  4. Crea una tarea y agrégala a la cola
  5. Limpia tus recursos.

Antes de comenzar

Para configurar tu entorno de Cloud, crea un proyecto de GCP y agrega una aplicación de App Engine con la facturación habilitada. Debes tener una aplicación de App Engine habilitada en tu proyecto para ejecutar tu cola. Si necesitas más información sobre los proyectos de GCP, las aplicaciones de App Engine y la facturación en general, consulta esta página.

  1. Crea o selecciona un proyecto de GCP:
    Ir a la página de App Engine
    1. Usa los botones en la parte superior derecha para seleccionar un nombre de proyecto existente o crear uno nuevo.
    2. Toma nota del ID del proyecto en el cuadro desplegable de la esquina superior izquierda. Servirá 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, haz 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 es importante que la recuerdes. Ten en cuenta que dos ubicaciones, llamadas europe-west y us-central en los comandos de App Engine, se llaman, respectivamente, europe-west1 y us-central1 en los comandos de Cloud Tasks.
    3. En la página Comenzar, haz clic en Siguiente. Deberá encargarse de esto más adelante. Si se trata de un proyecto nuevo, se compilará el backend.
    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 Pasos siguientes, haga clic en Lo seguiré más adelante. Accederás a los ejemplos y descargarás el SDK más adelante.

  3. Habilita la API de Cloud Tasks.
    Ir a la página de la API de Cloud Tasks
  4. Configura la autenticación para la API.
    1. Sigue las instrucciones para crear una cuenta de servicio. Descarga el archivo con la clave JSON asociada con la cuenta y almacénala localmente. Una cuenta de servicio te permite autenticarte con Google Cloud de manera programática.
    2. Las muestras usan las bibliotecas cliente de Google Cloud para interactuar con App Engine, así que necesitas configurar una variable de entorno que apunte a la clave que descargaste antes, a fin de que la biblioteca la use para autenticar tus solicitudes. Es posible crear tus solicitudes sin usar las bibliotecas cliente, pero estas pueden ayudarte a administrar detalles de la comunicación de bajo nivel con el servidor, incluida la autenticación.
  5. Instala y configura el SDK de Cloud. Esto te da acceso a la herramienta de gcloud.

Configura la muestra

Estos ejemplos proporcionan un marco de trabajo para intentar agregar tareas a las colas de Cloud Tasks a través de la API de Cloud Tasks.

C#

La muestra de C# consta de dos apps, una (CreateAppEngineTask) que se ejecuta localmente como una herramienta de línea de comandos para crear y agregar tareas a la cola, y una (CloudTasks) implementada en App Engine Flex como "proceso" la tarea. La cola en sí se ejecuta en App Engine.

Para descargar y luego instalar la muestra, sigue estas instrucciones:

  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 haberla configurado para usar el proyecto de GCP 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 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 para 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 del trabajador (CloudTasks) en App Engine Flexible:

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

  9. Verifica que se esté entregando la página de índice:

    gcloud app browse

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

Python

La aplicación de muestra de Python consta de dos archivos, uno (create_app_engine_queue_tasks.py) que se ejecuta localmente como una herramienta de línea de comandos para crear y agregar tareas a la cola y otro (main.py) implementado en App Engine para "procesar" la tarea. La cola en sí se ejecuta en App Engine.

Para descargar y luego instalar la muestra, sigue estas instrucciones:

  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 de gcloud y haberla configurado para usar el proyecto que creaste antes.

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

    gcloud app deploy

  6. Verifica que se esté entregando la página de índice:

    gcloud app browse

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

Java

La aplicación de muestra de Java 8 consta de dos archivos, uno (CreateTask.java) que se ejecuta localmente como una herramienta de línea de comandos para crear y agregar tareas a la cola y otro (TaskServlet.java) implementado en App Engine para "procesar" la tarea. La cola en sí se ejecuta en App Engine. Para ejecutar la muestra con Java 11, consulta Ejecuta el código de Java 11 de forma asíncrona.

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

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

Para 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 y luego instalar la muestra, sigue estas instrucciones:

  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 de gcloud y 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 Flexible:

    mvn appengine:deploy

PHP

La muestra de PHP consta de dos archivos, uno (/snippets/src/create_task.php) que se ejecuta localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (/apps/handler/index.php) implementado en App Engine para "procesar" tarea. La cola en sí se ejecuta en App Engine.

Para descargar y luego instalar la muestra, sigue estas instrucciones:

  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/php72/tasks

    En el directorio tasks, verás dos subdirectorios:

    • apps/handler: contiene el código para el servicio de trabajador que se implementará 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 usarla de manera local, asegúrate de que composer.phar se encuentre en ambos subdirectorios. Consulta la documentación de Composer para obtener información sobre cómo ejecutarlo local o globalmente.

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

    composer install
    Alternativamente, si vas a usar solo la versión local, ejecuta el siguiente comando:
    php composer.phar install

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

    composer install
    Alternativamente, si vas a usar solo la versión local, ejecuta el siguiente comando:
    php composer.phar install

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

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

    gcloud app deploy

  8. Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:

    gcloud app browse

    Tu navegador se 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 localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (tasks/handle_task/handle_task.go) implementado en App Engine para "procesar" tarea. La cola en sí se ejecuta en App Engine.

Para descargar y luego instalar la muestra, sigue estas instrucciones:

  1. Asegúrate de haber instalado el componente gcloud Go de App Engine:

    gcloud components install app-engine-go

  2. Asegúrate de haber inicializado la herramienta de gcloud y 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 para ver el código de muestra del trabajador.

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

  5. Observa 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 Flexible:

    gcloud app deploy

  7. Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:

    gcloud app browse

    Tu navegador se 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 localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (server.js) implementado en App Engine para "procesar" tarea. La cola en sí se ejecuta en App Engine.

Para descargar y luego instalar la muestra, sigue estas instrucciones:

  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 de gcloud y 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. Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:

    gcloud app browse

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

Ruby

La muestra de Ruby consta de dos archivos, uno (create_Task.rb) que se ejecuta localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (app.rb) implementado en App Engine para "procesar" tarea. La cola en sí se ejecuta en App Engine.

Para descargar y luego instalar la muestra, sigue estas instrucciones:

  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. Instale las dependencias:

    bundle install

  4. Asegúrate de haber inicializado la herramienta de gcloud y 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. Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:

    gcloud app browse

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

Si necesitas más información sobre cómo crear 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 de gcloud del SDK de Cloud 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 mientras se inicializa la cola y, luego, usa describedescribe para verificar que se haya creado correctamente:

    gcloud tasks queues describe my-queue

  3. Verifica que el resultado sea similar a lo siguiente:

    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
    

Agrega 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 las usa 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

    Para encontrar el ID de ubicación, usa el siguiente comando gcloud:

    gcloud tasks locations list

  2. Navega a la carpeta TasksSample:

    cd ../api/TasksSample

  3. Crea una tarea y agrega una carga útil, la string "hello", mediante test. La aplicación CloudTasks que implementaste antes tiene un extremo log_payload, que procesa la carga útil para registrarla.

    dotnet test

  4. Verifica el registro para asegurarte de que la tarea haya llegado al 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, ya sea de forma manual, en el código de tu app de muestra o mediante de un alias. La app de muestra las usa 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: Para encontrar el ID de ubicación, usa el siguiente comando gcloud:
    gcloud tasks locations list

  2. Usa el create_app_engine_queue_task.py local para crear una tarea y agregar una carga útil de hello. La carga útil puede ser cualquier conjunto de datos 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, ya sea de forma manual, en el código de tu app de muestra o mediante de 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: Para encontrar el ID de ubicación, usa el siguiente comando gcloud:
    gcloud tasks locations list

  2. Crea una tarea, orientada al extremo /task/create en el servlet que implementaste, con una carga útil de hello. La carga útil puede ser cualquier conjunto de datos 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, ya sea de forma manual, en el código de tu app de muestra o mediante de 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: Para encontrar el ID de ubicación, usa el siguiente comando gcloud:
    gcloud tasks locations list

  3. Usa el fragmento local create_task.php para crear una tarea y agregar una carga útil hello. La carga útil puede ser cualquier conjunto de datos 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 todavía estás en el directorio tasks/handle_task, navega hasta el directorio tasks/create_task.

  2. 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 de 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: Para encontrar el ID de ubicación, usa el siguiente comando gcloud:
    gcloud tasks locations list

  3. Crea una tarea con la carga útil hello y agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos 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 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, ya sea de forma manual, en el código de tu app de muestra o mediante de 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: Para encontrar el ID de ubicación, usa el siguiente comando gcloud:
    gcloud tasks locations list

  2. Crea una tarea con la carga útil hello y agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos 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 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, ya sea de forma manual, en el código de tu app de muestra o mediante de 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: Para encontrar el ID de ubicación, usa el siguiente comando gcloud:
    gcloud tasks locations list

  2. Crea una tarea con la carga útil hello y agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos 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 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 guía de inicio rápido.

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

    Ir a la página Administrar recursos

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

Qué sigue