Agrega una tarea de App Engine a una cola de Cloud Tasks
En esta guía de inicio rápido, se muestra cómo agregar una tarea de App Engine a una cola de Cloud Tasks con la API de Cloud Tasks.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la 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
- Selecciona 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.
-
Crear 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 Google Cloud proyecto:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto 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 las APIs de Cloud Resource Manager y Cloud Tasks:
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 obtener este permiso 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 cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Si usas una shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la 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
- Selecciona 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.
-
Crear 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 Google Cloud proyecto:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto 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 las APIs de Cloud Resource Manager y Cloud Tasks:
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 obtener este permiso 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 cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Si usas una shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
- La cuenta de servicio predeterminada de App Engine se crea automáticamente cuando usas App Engine. Puedes usar esta cuenta de servicio cuando pruebes esta guía de inicio rápido. Sin embargo, según la configuración de la política de tu organización, es posible que a la cuenta de servicio predeterminada no se le otorgue automáticamente el rol
Editoren tu proyecto. Si es así, debes otorgar a la cuenta de servicio los siguientes roles:- Administrador de Artifact Registry (
roles/artifactregistry.admin) - Escritor de creación automática al momento del envío de Artifact Registry (
roles/artifactregistry.createOnPushWriter) - Administrador de Compute (
roles/compute.admin) - Escritor de registros (
roles/logging.logWriter) - Visualizador de objetos de Storage (
roles/storage.objectViewer)
- Administrador de Artifact Registry (
Agrega una aplicación de App Engine
Cuando segmentas una tarea de App Engine y antes de implementar una app en el entorno estándar de App Engine, debes agregar una aplicación de App Engine a tu proyecto.
En la consola de Google Cloud , ve a la página App Engine.
En el cuadro de diálogo Bienvenido a App Engine, realiza una de las siguientes acciones:
Si ya creaste una aplicación de App Engine y se muestra el mensaje Se creó tu aplicación de App Engine, puedes omitir los pasos restantes de esta sección y continuar con los pasos de la sección Instala e implementa la muestra.
o
Si aún no creaste una aplicación de App Engine, haz clic en Crear aplicación y continúa con los pasos restantes de esta sección.
Selecciona una región para tu aplicación y anótala.
Ten en cuenta que
europe-westyus-centralse llaman, respectivamente,europe-west1yus-central1en los comandos de Cloud Tasks.No selecciones una cuenta de servicio. Se usará la cuenta de servicio predeterminada de App Engine.
Haz clic en Siguiente.
La aplicación se configuró y creó. Este proceso puede tardar unos minutos.
No descargues el SDK de Cloud. En su lugar, haz clic en Lo haré más tarde.
Deberías ver el mensaje Se creó tu aplicación de App Engine.
Instala e implementa la muestra
La muestra de Node.js que se usa en esta guía de inicio rápido consta de dos archivos: createTask.js se ejecuta de forma local como una herramienta de línea de comandos para crear y agregar tareas a la cola de Tasks, mientras que server.js se implementa en App Engine como un servicio de trabajador para procesar la tarea.
En tu terminal, clona el repositorio de la aplicación de muestra en tu máquina local.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitNavega al directorio que contiene el código de muestra.
cd nodejs-docs-samples/cloud-tasks/snippetsInstala todas las dependencias con un administrador de paquetes de Node.js.
Puedes usar NPM:
npm installO bien, puedes usar Yarn:
yarn installImplementa el servicio del trabajador (
server.js) en el entorno estándar de App Engine.gcloud app deploy app.yamlAsegúrate de que se esté ejecutando la app que contiene el servicio.
gcloud app browseEn tu navegador, ve al vínculo proporcionado. Por ejemplo:
https://PROJECT_ID.uc.r.appspot.com/Deberías ver
Hello, World!.
Crea una cola de Cloud Tasks
Usa el comando gcloud tasks queues create para crear tu cola en el entorno que preparaste.
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: La región en la que implementaste tu 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
Crea una tarea, agrégala a la cola que creaste y entrégala al servicio de trabajador.
Configura las siguientes variables de entorno: El cliente usa esta información para crear la solicitud.
export PROJECT_ID=PROJECT_ID export LOCATION_ID=REGION export QUEUE_ID=QUEUE_NAMECrea una tarea con la carga útil
helloy agrégala a tu cola. La carga útil puede ser cualquier dato de la solicitud que el servicio de trabajador necesite para procesar la tarea.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID helloMuestra los registros del servicio de trabajador para verificar que la tarea se haya ejecutado.
gcloud app logs readLos registros deberían ser similares a los siguientes:
2024-06-20 15:00:00 default[20240620t143852] "POST /log_payload HTTP/1.1" 200 2024-06-20 15:00:00 default[20240620t143852] App listening on port 8081 2024-06-20 15:00:00 default[20240620t143852] Press Ctrl+C to quit. 2024-06-20 15:00:00 default[20240620t143852] Received task with payload: hello
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 Google Cloud proyecto:
gcloud projects delete PROJECT_ID
Como alternativa, puedes borrar los recursos que creaste:
Borra la cola de Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION