Añadir una tarea de destino HTTP a una cola de Cloud Tasks

En esta guía de inicio rápido se muestra cómo añadir una tarea de destino HTTP a una cola de Cloud Tasks mediante la API Cloud Tasks.

Antes de empezar

  1. 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.
  2. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. 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.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Tasks API:

    gcloud services enable cloudtasks.googleapis.com
  8. 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.

  9. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/cloudtasks.admin, roles/logging.viewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  10. Install the Google Cloud CLI.

  11. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  12. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  13. 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.

  14. Verify that billing is enabled for your Google Cloud project.

  15. Enable the Cloud Tasks API:

    gcloud services enable cloudtasks.googleapis.com
  16. 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.

  17. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/cloudtasks.admin, roles/logging.viewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  18. Crear una cola de Cloud Tasks

    Usa el comando gcloud tasks queues create para crear la cola.

    1. 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 Tasks
      • REGION: la región admitida en la que has implementado tu servicio o aplicación
    2. 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
      

    Añadir una tarea a la cola de Cloud Tasks

    Usa el comando gcloud tasks create-http-task para crear una tarea que tenga como destino un endpoint HTTP y añadirla a tu cola.

    1. Crea una tarea, añádela a la cola que has creado y envíala a un endpoint HTTP.

      gcloud tasks create-http-task \
          --queue=QUEUE_NAME \
          --url=URL_PATH \
          --method=GET \
          --location=REGION \
          --project=PROJECT_ID
      

      Sustituye URL_PATH por la ruta de URL completa a la que se enviará la solicitud. Por ejemplo: https://www.google.com

      La ruta debe empezar por http:// o https://.

    2. Para comprobar que la tarea se ha ejecutado correctamente, lee los registros.

      gcloud logging read --limit=3
      

      Los registros deberían tener un aspecto similar al siguiente:

      jsonPayload:
      '@type': type.googleapis.com/google.cloud.tasks.logging.v1.TaskActivityLog
      task: projects/PROJECT_ID/locations/REGION/queues/QUEUE_NAME/tasks/TASK_ID
      taskCreationLog:
         scheduleTime: '2024-07-04T19:00:27.801837Z'
         status: OK
         targetAddress: GET https://www.google.com/
         targetType: HTTP
      

    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 la cola de Cloud Tasks:

    gcloud tasks queues delete QUEUE_NAME \
        --location=REGION
    

    Siguientes pasos