Agrega una tarea de destino HTTP a una lista de tareas en cola de Cloud Tasks
Cloud Tasks te permite enviar tareas asíncronas a destinos HTTP mientras controlas las tasas de ejecución y el comportamiento de reintento. En esta guía de inicio rápido, usarás la API de Cloud Tasks para crear una cola y agregar una tarea de destino HTTP a esa cola.
Antes de comenzar
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Cloud Tasks si aún no lo hiciste:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable cloudtasks.googleapis.com
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM:
roles/cloudtasks.admin, roles/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID: ID del proyectoUSER_IDENTIFIER: Es el identificador de tu cuenta de usuario de cuenta. Para ver ejemplos, consulta Representa a los usuarios del grupo de personal en políticas de IAM.ROLE: Es el rol de IAM que le otorgas a tu cuenta de usuario.
Crea una cola de Cloud Tasks
Usa el comando gcloud tasks queues create para crear tu cola.
En tu terminal, crea una cola que registre todas las operaciones.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONReemplaza lo siguiente:
QUEUE_NAME: Un nombre para tu fila de Cloud TasksREGION: Es la región admitida en la que implementaste tu servicio o app.
Espera a que se inicialice la cola y, luego, verifica que se haya creado correctamente.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONEl 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
Usa el comando gcloud tasks create-http-task para crear una tarea que apunte a un extremo HTTP y agregarla a tu cola.
Crea una tarea, agrégala a la cola que creaste y envíala a un extremo HTTP.
gcloud tasks create-http-task \ --queue=QUEUE_NAME \ --url=URL_PATH \ --method=GET \ --location=REGION \ --project=PROJECT_IDReemplaza
URL_PATHpor la ruta de URL completa a la que se enviará la solicitud. La ruta de acceso debe comenzar conhttp://ohttps://, por ejemplo:https://www.example.com.Lee los registros para verificar que la tarea se haya ejecutado correctamente.
gcloud logging read 'resource.type="cloud_tasks_queue" resource.labels.queue_id="QUEUE_NAME" severity>=DEFAULT' --limit=3Los registros deberían ser similares a los siguientes:
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.example.com/ targetType: HTTP ...
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, borra el proyecto de Google Cloud que tiene los recursos.
Borra un proyecto de Google Cloud :
gcloud projects delete PROJECT_ID
Como alternativa, puedes borrar la cola de Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \
--location=REGION