Puedes usar Cloud Tasks para crear elementos de trabajo asíncronos llamados tareas. En este documento, se muestra cómo crear tareas de destino de HTTP y tareas de App Engine.
Las tareas de destino HTTP son solicitudes que se reenvían a un trabajador ubicado en cualquier extremo HTTP genérico con una dirección IP externa, como Cloud Run, Google Kubernetes Engine, Compute Engine o un servidor web local.
En el caso de los destinos de App Engine, Cloud Tasks reenvía las solicitudes de tareas a un controlador dentro de App Engine. Todas las colas que se segmentan para los controladores de App Engine deben tener una aplicación de App Engine. Los controladores deben ejecutarse en la región en la que se ejecuta la aplicación de App Engine. Esta región también sirve como parámetro REGION para tus solicitudes de Cloud Tasks.
Puedes crear una tarea de destino HTTP de las siguientes maneras:
- En la consola de Google Cloud
- Con Google Cloud CLI en tu terminal o Cloud Shell
- Envía una solicitud directa a la API de Cloud Tasks.
Para aprender a agregar de manera programática una tarea de destino HTTP a una cola de Cloud Tasks, consulta Crea tareas de destino HTTP de manera programática.
Puedes crear una tarea de App Engine de las siguientes maneras:
- Con Google Cloud CLI en tu terminal o Cloud Shell
- Envía una solicitud directa a la API de Cloud Tasks.
Para obtener información sobre cómo agregar de forma programática una tarea de App Engine a una cola de Cloud Tasks, consulta Crea tareas de App Engine de forma programática.
Antes de comenzar
Asegúrate de haber creado una cola de Cloud Tasks. Para obtener más información, consulta Crea colas de Cloud Tasks.
Crea una tarea de destino HTTP
Cuando creas una tarea, puedes especificar un nombre para ella. Si el nombre es idéntico al de una tarea existente o una tarea que se borró o completó recientemente, la llamada fallará. Si no especificas un nombre de tarea, se genera un ID de tarea único aleatorio.
Dado que hay un costo de búsqueda adicional para identificar nombres de tareas duplicados, las tareas creadas con IDs especificados por el usuario tienen una latencia significativamente mayor. Se recomienda usar cadenas hash para el ID de la tarea o para el prefijo del ID de la tarea. Para obtener más información, consulta Deduplicación de tareas.
Console
En la consola de Google Cloud , ve a la página Cloud Tasks > Colas.
Haz clic en el nombre de la cola a la que deseas agregar tu tarea.
Haz clic en Crear tarea HTTP.
De manera opcional, especifica el Nombre de la tarea.
En URL, especifica la URL completamente calificada a la que se enviará la solicitud. La ruta de acceso debe comenzar con
http://ohttps://, por ejemplo,https://www.example.com.De forma opcional, especifica el método HTTP que se usará para la solicitud. El valor predeterminado
POST.De manera opcional, en Cuerpo de la solicitud, proporciona los datos del cuerpo HTTP que se enviarán al trabajador que procesa la tarea.
De forma opcional, especifica uno o más encabezados de solicitud HTTP haciendo clic en Agregar un encabezado.
En Encabezado de autorización, selecciona una de las siguientes opciones de autorización para especificar cómo se autentica la solicitud enviada al destino cuando se ejecuta la tarea:
- None: Sin encabezado, para extremos públicos sin autorización
- Agregar token de OAuth: Por lo general, se usa para las APIs de Google alojadas en
*.googleapis.com. - Add OIDC token: Se usa para las llamadas a Google Cloud y a extremos de terceros, con la excepción de las APIs de Google alojadas en
*.googleapis.com.
Si corresponde, en Cuenta de servicio, proporciona la dirección de correo electrónico de la cuenta de servicio que se usará para generar el token de autorización incluido en la solicitud que se envía al destino cuando se ejecuta la tarea. La cuenta de servicio debe estar en el mismo proyecto que la cola. El llamador debe tener el permiso
iam.serviceAccounts.actAspara la cuenta de servicio.De forma opcional, y si corresponde, especifica el público para limitar los tipos de acciones o destinatarios del token de autorización.
Haz clic en Crear.
Tu tarea debería aparecer en la página Detalles de la cola.
gcloud
Para crear una tarea de destino HTTP y agregarla a una cola existente, usa el comando gcloud tasks create-http-task.
gcloud tasks create-http-task \
--queue=QUEUE_ID \
--url=URL \
--location=REGION \
--project=PROJECT_ID \
--oidc-service-account-email=SERVICE_ACCOUNT_EMAIL
Reemplaza lo siguiente:
QUEUE_ID: Es el nombre de la fila a la que se agregará la tarea.URL: Es la URL completamente calificada a la que se enviará la solicitud. La ruta de acceso debe comenzar conhttp://ohttps://, por ejemplo,https://www.example.com.REGION: es opcional. La región en la que se implementa la cola, por ejemplo,us-central1.PROJECT_ID: es opcional. Es el ID del proyecto deGoogle Cloud en el que se creará la tarea.SERVICE_ACCOUNT_EMAIL: es opcional. Es la dirección de correo electrónico de la cuenta de servicio que se usa para generar un token de autorización que se incluye en la solicitud enviada al destino cuando se ejecuta la tarea. La cuenta de servicio debe estar en el mismo proyecto que la cola. El llamador debe tener el permisoiam.serviceAccounts.actAspara la cuenta de servicio.Para generar un token de acceso de OAuth2 en lugar de un token de OpenID Connect, reemplaza la marca
--oidc-service-account-emailpor--oauth-service-account-emailpara especificar la dirección de correo electrónico de la cuenta de servicio.
Después de crear la tarea, deberías ver un mensaje de confirmación con el nombre completo del recurso de la tarea creada.
REST
Para crear una tarea de destino HTTP y agregarla a una cola existente, usa el método projects.locations.queues.tasks.create.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Obligatorio. ID del proyecto de Google Cloud en el que se creará la tarea.REGION: Obligatorio. La región en la que se implementa la cola, por ejemplo,us-central1.QUEUE_ID: Obligatorio. ID de la cola a la que se agregará la tarea.URL: Obligatorio. Es la URL completamente calificada a la que se enviará la solicitud. Esta cadena debe comenzar conhttp://ohttps://, por ejemplo:https://www.example.com.SERVICE_ACCOUNT_EMAIL: Opcional. Es la dirección de correo electrónico de la cuenta de servicio que se usa para generar un token de autorización que se incluye en la solicitud enviada al destino cuando se ejecuta la tarea. La cuenta de servicio debe estar en el mismo proyecto que la cola. El llamador debe tener el permisoiam.serviceAccounts.actAspara la cuenta de servicio.Para generar un token de acceso de OAuth2 en lugar de un token de OpenID Connect, reemplaza el campo
oidcTokenporoauthTokenpara especificar el correo electrónico de la cuenta de servicio.SCHEDULE_TIME: es opcional. Fecha y hora en que se programó el intento de la tarea, en formato RFC 3339, por ejemplo,2026-10-02T15:01:23Z. Si no se establece la hora o esta ya pasó, Cloud Tasks la establecerá en la hora actual.
Cuerpo JSON de la solicitud:
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
Para enviar tu solicitud, expande una de estas opciones:
Si el proceso se realiza correctamente, el cuerpo de la respuesta contiene la instancia recién creada del recurso Task.
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"headers": {
"User-Agent": "Google-Cloud-Tasks"
},
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
"audience": "URL"
}
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
Crea una tarea de App Engine
Cuando creas una tarea, puedes especificar un nombre para ella. Si el nombre es idéntico al de una tarea existente o una tarea que se borró o completó recientemente, la llamada fallará. Si no especificas un nombre de tarea, se genera un ID de tarea único aleatorio.
Dado que hay un costo de búsqueda adicional para identificar nombres de tareas duplicados, las tareas creadas con IDs especificados por el usuario tienen una latencia significativamente mayor. Se recomienda usar cadenas hash para el ID de la tarea o para el prefijo del ID de la tarea. Para obtener más información, consulta Deduplicación de tareas.
gcloud
Para crear una tarea de App Engine y agregarla a una cola existente, usa el comando gcloud tasks create-app-engine-task.
gcloud tasks create-app-engine-task \
--queue=QUEUE_ID \
--relative-uri=RELATIVE_URI \
--location=REGION \
--project=PROJECT_ID \
--routing=KEY:VALUE
Reemplaza lo siguiente:
QUEUE_ID: Es el nombre de la fila a la que se agregará la tarea.RELATIVE_URI: Es el URI relativo de la solicitud. La ruta debe comenzar con una barra diagonal (/). Si no se especifica, se usa la ruta raíz (/).REGION: es opcional. Región en la que se implementa la cola. Si no se especifica, se usa la ubicación de la app de App Engine del proyecto actual.PROJECT_ID: es opcional. Es el ID del proyecto deGoogle Cloud en el que se creará la tarea.KEY:VALUE: Opcional. Es la ruta que se usará para esta tarea, en la queKEYes al menos uno de los siguientes valores:service,versionoinstance. Las claves faltantes usarán el enrutamiento predeterminado.
Después de crear la tarea, deberías ver un mensaje de confirmación con el nombre completo del recurso de la tarea creada.
REST
Para crear una tarea de App Engine y agregarla a una cola existente, usa el método projects.locations.queues.tasks.create.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Obligatorio. ID del proyecto de Google Cloud en el que se creará la tarea.REGION: Obligatorio. Región en la que se implementa la cola.QUEUE_ID: Obligatorio. ID de la cola a la que se agregará la tarea.RELATIVE_URI: Obligatorio. Es el URI relativo de la solicitud. La ruta debe comenzar con una barra diagonal (/). Si no se especifica, se usa la ruta raíz (/).SERVICE: es opcional. Servicio de App Engine que procesará la tarea. De forma predeterminada, la tarea se envía al servicio que es el servicio predeterminado cuando se intenta realizar la tarea.VERSION: es opcional. Versión de App Engine que procesará la tarea. De forma predeterminada, la tarea se envía a la versión que es la versión predeterminada cuando se intenta realizar la tarea.SCHEDULE_TIME: es opcional. Fecha y hora en que se programó el intento de la tarea, en formato RFC 3339, por ejemplo,2026-10-02T15:01:23Z. Si no se establece la hora o esta ya pasó, Cloud Tasks la establecerá en la hora actual.
Cuerpo JSON de la solicitud:
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
Para enviar tu solicitud, expande una de estas opciones:
Si el proceso se realiza correctamente, el cuerpo de la respuesta contiene la instancia recién creada del recurso Task.
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION",
"host": "VERSION.SERVICE.PROJECT_ID.appspot.com"
}
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
Crea un lote de tareas
Puedes crear un lote de tareas objetivo y agregarlo a una cola existente con el método projects.locations.queues.tasks.batchCreate para crear una lista de solicitudes.
Ten en cuenta lo siguiente:
Todas las tareas se deben agregar a la misma cola.
Existe un límite para la cantidad de tareas que se pueden crear en un solo lote. Para obtener más información, consulta Cuotas y límites.
Las solicitudes por lotes, que agregan operaciones individuales en una sola solicitud, no son atómicas porque es posible que algunas de las operaciones incluidas en el lote fallen mientras que otras se completen correctamente.
También puedes borrar un lote de tareas. Para obtener más información, consulta Borra un lote de tareas de una cola.
Tareas HTTP
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Obligatorio. ID del proyecto de Google Cloud en el que se crearán las tareas.REGION: Obligatorio. La región en la que se implementa la cola, por ejemplo,us-central1.QUEUE_ID: Obligatorio. ID de la cola a la que se agregarán las tareas.URL: Obligatorio. Es la URL completamente calificada a la que se enviará la solicitud. Esta cadena debe comenzar conhttp://ohttps://, por ejemplo:https://www.example.com.SERVICE_ACCOUNT_EMAIL: Opcional. Es la dirección de correo electrónico de la cuenta de servicio que se usa para generar un token de autorización que se incluye en la solicitud enviada al destino cuando se ejecuta la tarea. La cuenta de servicio debe estar en el mismo proyecto que la cola. El llamador debe tener el permisoiam.serviceAccounts.actAspara la cuenta de servicio.Para generar un token de acceso de OAuth2 en lugar de un token de OpenID Connect, reemplaza el campo
oidcTokenporoauthTokenpara especificar el correo electrónico de la cuenta de servicio.
El cuerpo de la solicitud contiene una lista de solicitudes.
Cuerpo JSON de la solicitud:
{
"requests": [
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
]
}
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta correctamente, el cuerpo de la respuesta contiene una instancia del recurso Operation.
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
},
"done": false
}
Tareas de App Engine
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Obligatorio. ID del proyecto de Google Cloud en el que se creará la tarea.REGION: Obligatorio. Región en la que se implementa la cola.QUEUE_ID: Obligatorio. ID de la cola a la que se agregarán las tareas.RELATIVE_URI: Obligatorio. Es el URI relativo de la solicitud. La ruta debe comenzar con una barra diagonal (/). Si no se especifica, se usa la ruta raíz (/).SERVICE: es opcional. Servicio de App Engine que procesará la tarea. De forma predeterminada, la tarea se envía al servicio que es el servicio predeterminado cuando se intenta realizar la tarea.VERSION: es opcional. Versión de App Engine que procesará la tarea. De forma predeterminada, la tarea se envía a la versión que es la versión predeterminada cuando se intenta realizar la tarea.SCHEDULE_TIME: es opcional. Fecha y hora en que se programó el intento de la tarea, en formato RFC 3339, por ejemplo,2026-10-02T15:01:23Z. Si no se establece la hora o esta ya pasó, Cloud Tasks la establecerá en la hora actual.
El cuerpo de la solicitud contiene una lista de solicitudes.
Cuerpo JSON de la solicitud:
{
"requests": [
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
]
}
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta correctamente, el cuerpo de la respuesta contiene una instancia del recurso Operation.
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
},
"done": false
}
¿Qué sigue?
- Configura colas de Cloud Tasks
- Cómo establecer parámetros de reintento para una tarea
- Administra las colas y las tareas