Workflows te permite ejecutar Trabajos de Cloud Run como parte de un flujo de trabajo para realizar procesamientos de datos más complejos, o para organizar un sistema de trabajos existentes.
En este instructivo, se muestra cómo usar Workflows para ejecutar un trabajo de Cloud Run que procesa los datos pasados como variables de entorno al trabajo, en respuesta a un evento de Cloud Storage.
Ten en cuenta que también puedes almacenar los datos de eventos en un bucket de Cloud Storage, lo que te permite encriptarlos con claves de encriptación administradas por el cliente. Para obtener más información, consulta Ejecuta un trabajo de Cloud Run que procese datos de eventos guardados en Cloud Storage.
Objetivos
En este instructivo, realizarás las siguientes acciones:
- Crea un trabajo de Cloud Run que procese archivos de datos en un bucket de Cloud Storage.
- Implementa un flujo de trabajo que haga lo siguiente:
- Acepta un evento de Cloud Storage como argumento.
- Verifica si el bucket de Cloud Storage especificado en el evento es el mismo que usa el trabajo de Cloud Run.
- Si es así, usa el conector de la API de Cloud Run Admin. para ejecutar el trabajo de Cloud Run.
- Crear un activador de Eventarc que ejecute el flujo de trabajo en respuesta a eventos que afectan al bucket de Cloud Storage.
- Actualiza un archivo de datos de entrada en el bucket de Cloud Storage para activar el flujo de trabajo.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Antes de comenzar
Es posible que las restricciones de seguridad que define tu organización no te permitan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno de Google Cloud restringido.
Console
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
- Antes de crear un activador para eventos directos desde Cloud Storage,
otorga el
Pub/Sub,
rol de publicador (
roles/pubsub.publisher
) al Agente de servicio de Cloud Storage:- En la consola de Google Cloud, ve a
IAM.
- Selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.
- En la columna Principal, busca el agente de servicio de Cloud Storage con el formato
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
y, luego, haz clic en Editar principal en la fila correspondiente. - Haz clic en Agregar rol. o Agregar otro rol.
- En la lista Seleccionar un rol, filtra por Publicador de Pub/Sub y, luego, selecciona en el área de la seguridad en la nube.
- Haz clic en Guardar.
- En la consola de Google Cloud, ve a
IAM.
- Si habilitaste el agente de servicio de Cloud Pub/Sub el 8 de abril de 2021 o antes de esa fecha,
para admitir las solicitudes de envío de Pub/Sub autenticadas, otorga
el rol de creador
de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) al agente de servicio. De lo contrario, esta función se otorga de forma predeterminada:- En la consola de Google Cloud, ve a
IAM.
- Selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.
- En la columna Nombre, busca la Cuenta de servicio de Cloud Pub/Sub y, luego, haz clic en Editar principal en la fila correspondiente.
- Haz clic en Agregar rol. o Agregar otro rol.
- En la lista Seleccionar un rol, filtra por Creador de tokens de cuenta de servicio y, luego, selecciona el rol.
- Haz clic en Guardar.
- En la consola de Google Cloud, ve a
IAM.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Cloud Shell admite los comandos
/dev/urandom
en
este instructivo que generan números pseudoaleatorios.
gcloud
Para usar una terminal en línea con la CLI de gcloud ya configurada, activa Cloud Shell:
En la parte inferior de esta página, se inicia una sesión de Cloud Shell y se muestra una instrucción de línea de comandos. La sesión puede tardar unos segundos en inicializarse.
Cloud Shell admite los comandos
/dev/urandom
en este instructivo que generan números pseudoaleatorios.- Crea o selecciona un proyecto de Google Cloud.
-
Crea un proyecto de Google Cloud:
gcloud projects create PROJECT_ID
-
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project PROJECT_ID
-
- Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- Habilita las APIs de Artifact Registry, Cloud Build,
Cloud Run, Cloud Storage, Eventarc,
and Workflows :
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
- Crea una cuenta de servicio para que tu flujo de trabajo la use como autenticación
con otros servicios de Google Cloud
y otorgarle los roles adecuados.
- Cree la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Reemplaza
SERVICE_ACCOUNT_NAME
por un nombre para la cuenta de servicio. - Otorga roles a la cuenta de servicio administrada por el usuario que creaste en el
paso anterior. Ejecuta el siguiente comando una vez para cada uno de los siguientes elementos:
IAM o puedes usar la marca
--role
varias veces en un solo comando:roles/eventarc.eventReceiver
: Para recibir eventosroles/logging.logWriter
: Para escribir registrosroles/run.admin
: Para ejecutar el comando de Cloud Run, trabajoroles/workflows.invoker
: Para invocar flujos de trabajo
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto en el que creaste. la cuenta de servicioROLE
: Es el rol que se otorgará a la cuenta de servicio administrada por el usuario.
- Cree la cuenta de servicio:
- Antes de crear un activador para eventos directos desde Cloud Storage, otorga el rol de publicador de Pub/Sub (
roles/pubsub.publisher
) al agente de servicio de Cloud Storage:SERVICE_ACCOUNT="$(gcloud storage service-agent --project=PROJECT_ID)" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role='roles/pubsub.publisher'
- Si habilitaste el agente de servicio de Cloud Pub/Sub el 8 de abril de 2021 o antes de esa fecha,
para admitir las solicitudes de envío de Pub/Sub autenticadas, otorga
el rol de creador
de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) al agente de servicio. De lo contrario, este rol se otorga de forma predeterminada:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Reemplaza PROJECT_NUMBER
por el número de proyecto de Google Cloud. Para encontrar el número del proyecto, ve a la página de bienvenida de la consola de Google Cloud o ejecuta el siguiente comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Terraform
Para usar una terminal en línea con gcloud CLI configura y activa Cloud Shell:
En la parte inferior de esta página, se inicia una sesión de Cloud Shell y se muestra una instrucción de línea de comandos. La sesión puede tardar unos segundos en inicializarse.
Cloud Shell admite los comandos
/dev/urandom
en este instructivo que generan números pseudoaleatorios.- Crea o selecciona un proyecto de Google Cloud.
-
Crea un proyecto de Google Cloud:
gcloud projects create PROJECT_ID
-
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project PROJECT_ID
-
- Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- Habilita las APIs de Artifact Registry, Cloud Build,
Cloud Run, Cloud Storage, Eventarc,
and Workflows :
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
Crea una cuenta de servicio para que tu flujo de trabajo la use en la autenticación con otros servicios de Google Cloud y bríndale los roles adecuados. Además, para admitir eventos directos desde Cloud Storage, otorga el rol de publicador de Pub/Sub (
roles/pubsub.publisher
) al agente de servicio de Cloud Storage.Modifica tu archivo
main.tf
como se muestra en el siguiente ejemplo. Para obtener más información, consulta la Proveedor de Google para la documentación de Terraform.Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Ten en cuenta que, en un flujo de trabajo típico de Terraform, aplicas todo el plan a la vez. Sin embargo, para los fines de este instructivo, puedes segmentar un recurso específico. Por ejemplo:
terraform apply -target="google_service_account.workflows"
- Si habilitaste el agente de servicio de Cloud Pub/Sub el 8 de abril de 2021 o antes de esa fecha,
para admitir las solicitudes de envío de Pub/Sub autenticadas, otorga
el rol de creador
de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) al agente de servicio. De lo contrario, este rol se otorga de forma predeterminada:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Reemplaza PROJECT_NUMBER
por el número de proyecto de Google Cloud. Para encontrar el número del proyecto, ve a la página de bienvenida de la consola de Google Cloud o ejecuta el siguiente comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Crea un trabajo de Cloud Run
En este instructivo, se usa un trabajo de muestra de Cloud Run de GitHub. La tarea lee datos de un archivo de entrada en Cloud Storage y realiza un procesamiento arbitrario para cada línea del archivo.
Clona el repositorio de la app de muestra en tu máquina local para obtener el código de muestra:
git clone https://github.com/GoogleCloudPlatform/jobs-demos.git
Como alternativa, puedes descarga la muestra como un archivo ZIP y extraerlo.
Dirígete al directorio que contiene el código de muestra:
cd jobs-demos/parallel-processing
Crea un bucket de Cloud Storage para almacenar un archivo de entrada en el que se pueda escribir y activar un evento:
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
- Haz clic en agregar Crear.
- En la página Crear un bucket, ingresa un nombre para tu bucket:
Reemplazainput-PROJECT_ID
PROJECT_ID
por el ID de tu proyecto de Google Cloud. - Mantén los otros valores predeterminados.
- Haz clic en Crear.
gcloud
Ejecuta el comando
gcloud storage buckets create
:gcloud storage buckets create gs://input-PROJECT_ID
Si la solicitud se realiza correctamente, el comando mostrará el siguiente mensaje:
Creating gs://input-PROJECT_ID/...
Terraform
Para crear un bucket de Cloud Storage, usa el recurso
google_storage_bucket
y modifica tu archivomain.tf
como se muestra en el siguiente ejemplo.Si quieres aprender a aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform
Ten en cuenta que, en un flujo de trabajo típico de Terraform, aplicas todo el plan a la vez. Sin embargo, para los fines de este instructivo, puedes segmentar tu contenido para un recurso específico. Por ejemplo:
terraform apply -target="random_id.bucket_name_suffix"
y
terraform apply -target="google_storage_bucket.default"
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
Crea un repositorio estándar de Artifact Registry en el que puedas almacenar tu imagen de contenedor:
Console
En la consola de Google Cloud, ve a la página Repositorios de Artifact Registry:
Haz clic en
. Crear repositorio.Ingresa un nombre para el repositorio, por ejemplo,
my-repo
. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.Conserva el formato predeterminado que debería ser Docker.
Conserva el modo predeterminado, que debería ser Estándar.
Para la región, selecciona us-central1 (Iowa).
Mantén todos los demás valores predeterminados.
Haz clic en Crear.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=us-central1
Reemplaza
REPOSITORY
por un nombre único para el repositorio, por ejemplo,my-repo
. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.Terraform
Para crear un repositorio de Artifact Registry, usa el recurso
google_artifact_registry_repository
y modifica tu archivomain.tf
como se muestra en el siguiente ejemplo.Ten en cuenta que, en un flujo de trabajo típico de Terraform, aplicas todo el plan a la vez. Sin embargo, para los fines de este instructivo, puedes segmentar un recurso específico. Por ejemplo:
terraform apply -target="google_artifact_registry_repository.default"
Usa un buildpack predeterminado de Google Cloud para compilar la imagen de contenedor:
export SERVICE_NAME=parallel-job gcloud builds submit \ --pack image=us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/${SERVICE_NAME}
Reemplaza
REPOSITORY
por el nombre de tu Repositorio de Artifact Registry.La compilación puede tardar unos minutos en completarse.
Crea un trabajo de Cloud Run que implemente la imagen de contenedor:
Console
En la consola de Google Cloud, ve a la página Cloud Run:
Haz clic en Crear trabajo para mostrar el formulario Crear trabajo.
- En el formulario, selecciona
us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest
como la URL de la imagen del contenedor de Artifact Registry. - Como nombre del trabajo, ingresa
parallel-job
(opcional). - Opcional: En Región, selecciona us-central1 (Iowa).
- Para la cantidad de tareas que deseas ejecutar en el trabajo, ingresa
10
. Todas las tareas deben realizarse correctamente para que el trabajo tenga éxito. De forma predeterminada, las tareas se ejecutan en paralelo.
- En el formulario, selecciona
Expande la sección Contenedores, variables y Secrets, conexiones y seguridad y conserva todos los valores predeterminados, excepto los siguientes configuración:
Haz clic en la pestaña General.
- Para el comando del contenedor, ingresa
python
. - Como argumento del contenedor, ingresa
process.py
.
- Para el comando del contenedor, ingresa
Haz clic en la pestaña Variables y Secrets.
- Haz clic en Agregar variable y, luego, ingresa
INPUT_BUCKET
para la yinput-PROJECT_ID
de la valor. - Haz clic en Agregar variable y, luego, ingresa
INPUT_FILE
para el nombre yinput_file.txt
para el valor.
- Haz clic en Agregar variable y, luego, ingresa
Para crear el trabajo, haz clic en Crear.
gcloud
Configura la región predeterminada de Cloud Run:
gcloud config set run/region us-central1
Crea el trabajo de Cloud Run:
gcloud run jobs create parallel-job \ --image us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest \ --command python \ --args process.py \ --tasks 10 \ --set-env-vars=INPUT_BUCKET=input-PROJECT_ID,INPUT_FILE=input_file.txt
Ten en cuenta que si no especificas un etiqueta de imagen, Artifact Registry Busca la imagen con la etiqueta
latest
predeterminada.Para obtener una lista completa de las opciones disponibles cuando creas un trabajo, consulta la documentación de la línea de comandos gcloud run jobs create.
Cuando se cree el trabajo, deberías ver un mensaje que indique el éxito.
Terraform
Para crear un trabajo de Cloud Run, usa el Recurso
google_cloud_run_v2_job
y modifica tu archivomain.tf
como se muestra en el siguiente ejemplo.Ten en cuenta que en un flujo de trabajo típico de Terraform, se aplica todo el plan en una vez. Sin embargo, para los fines de este instructivo, puedes segmentar un recurso específico. Por ejemplo:
terraform apply -target="google_cloud_run_v2_job.default"
Implementa un flujo de trabajo que ejecute el trabajo de Cloud Run
Define e implementa un flujo de trabajo que ejecute el trabajo de Cloud Run que acabas de crear. La definición de un flujo de trabajo está compuesta por una serie de pasos descritos con la sintaxis de Workflows.
Console
En la consola de Google Cloud, ve a la página Flujos de trabajo:
Haz clic en
Crear.Ingresa un nombre para el flujo de trabajo nuevo, como
cloud-run-job-workflow
.Para la región, selecciona us-central1 (Iowa).
En el campo Cuenta de servicio, selecciona la cuenta de servicio creamos anteriormente.
La cuenta de servicio funciona como la identidad del flujo de trabajo. Deberías tener el rol de administrador de Cloud Run a la cuenta de servicio, por lo que que el flujo de trabajo pueda ejecutar el trabajo de Cloud Run.
Haz clic en Siguiente.
En el editor de flujos de trabajo, ingresa la siguiente definición para tu flujo de trabajo:
Haz clic en Implementar.
gcloud
Crea un archivo de código fuente para tu flujo de trabajo:
touch cloud-run-job-workflow.yaml
Copia la siguiente definición de flujo de trabajo en tu archivo de código fuente:
Para implementar el flujo de trabajo, ingresa el siguiente comando:
gcloud workflows deploy cloud-run-job-workflow \ --location=us-central1 \ --source=cloud-run-job-workflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Reemplaza lo siguiente:
SERVICE_ACCOUNT_NAME
: Es el nombre de la cuenta de servicio que creaste antes.PROJECT_ID
: El ID de tu proyecto de Google Cloud
La cuenta de servicio funciona como la identidad del flujo de trabajo. Ya deberías haber otorgado el rol
roles/run.admin
a la cuenta de servicio para que el flujo de trabajo pueda ejecutar la tarea de Cloud Run.
Terraform
Para crear un flujo de trabajo, usa el
recurso google_workflows_workflow
y modifica tu archivo main.tf
como se muestra en el siguiente ejemplo.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Ten en cuenta que, en un flujo de trabajo típico de Terraform, se aplica todo el plan a la vez. Sin embargo, a los efectos de este instructivo, puedes enfocarte en un grupo recurso. Por ejemplo:
terraform apply -target="google_workflows_workflow.default"
El flujo de trabajo hace lo siguiente:
Paso
init
: Acepta un evento de Cloud Storage como argumento y, luego, configura las variables necesarias.Paso
check_input_file
: Verifica si el bucket de Cloud Storage especificado en el evento es el que usa la tarea de Cloud Run.- Si es así, el flujo de trabajo pasa al paso
run_job
. - Si no es así, el flujo de trabajo finaliza y se detiene cualquier procesamiento posterior.
- Si es así, el flujo de trabajo pasa al paso
Paso
run_job
: Usa el métodogoogleapis.run.v1.namespaces.jobs.run
del conector de la API de Cloud Run Admin para ejecutar el trabajo. Los nombres del bucket de Cloud Storage y del archivo de datos y se pasan como variables de anulación del flujo de trabajo al trabajo.Paso
finish
: Muestra información sobre la ejecución del trabajo como resultado del flujo de trabajo.
Crea un activador de Eventarc para el flujo de trabajo
Para ejecutar automáticamente el flujo de trabajo y, a su vez, Cloud Run cada vez que se actualice el archivo de datos de entrada, Eventarc crear activador que responda a los eventos de Cloud Storage en el bucket que contiene el archivo de datos de entrada.
Console
En la consola de Google Cloud, ve a la página Flujos de trabajo:
Haz clic en el nombre de tu flujo de trabajo, como
cloud-run-job-workflow
.En la página Detalles del flujo de trabajo, haz clic en
Editar.En la página Editar flujo de trabajo, en la sección Activadores, haz clic en Agregar activador nuevo > Eventarc.
Se abrirá el panel Evento de Eventarc.
En el campo Nombre del activador, ingresa un nombre para el activador, como
cloud-run-job-workflow-trigger
En la lista Proveedor de eventos, selecciona Cloud Storage.
En la lista Evento, selecciona google.cloud.storage.object.v1.finalized.
En el campo Bucket, selecciona el bucket que contiene los datos de entrada. . El nombre del bucket tiene el siguiente formato:
input-PROJECT_ID
En el campo Cuenta de servicio, selecciona la cuenta de servicio que creaste antes.
La cuenta de servicio funciona como la identidad del activador. Ya deberías haber otorgado los siguientes roles a la cuenta de servicio:
- Receptor de eventos de Eventarc: Para recibir eventos
- Invocador de flujos de trabajo: Para ejecutar flujos de trabajo
Haz clic en Guardar activador.
El activador de Eventarc ahora aparece en la sección Activadores de la página Editar flujo de trabajo.
Haz clic en Siguiente.
Haz clic en Implementar.
gcloud
Ejecuta el siguiente comando para crear un activador de Eventarc:
gcloud eventarc triggers create cloud-run-job-workflow-trigger \ --location=us \ --destination-workflow=cloud-run-job-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=input-PROJECT_ID" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Reemplaza lo siguiente:
PROJECT_ID
El ID de tu proyecto de Google Cloud.SERVICE_ACCOUNT_NAME
: Es el nombre del servicio. cuenta que creaste anteriormente.
La cuenta de servicio funciona como la identidad del activador. Deberías tener ya otorgaste los siguientes roles a la cuenta de servicio:
roles/eventarc.eventReceiver
: Para recibir eventosroles/workflows.invoker
: Para ejecutar flujos de trabajo
Terraform
Para crear un activador, usa la
Recurso google_eventarc_trigger
y modifica tu archivo main.tf
como se muestra en el siguiente ejemplo.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Ten en cuenta que, en un flujo de trabajo típico de Terraform, se aplica todo el plan a la vez. Sin embargo, a los efectos de este instructivo, puedes enfocarte en un grupo recurso. Por ejemplo:
terraform apply -target="google_eventarc_trigger.default"
Cada vez que se sube un archivo a Cloud Storage o se reemplaza bucket que contiene el archivo de datos de entrada, el flujo de trabajo se ejecuta con el evento correspondiente de Cloud Storage como argumento.
Activa el flujo de trabajo
Prueba el sistema de extremo a extremo actualizando el archivo de datos de entrada en en Google Cloud Storage.
Genera datos nuevos para el archivo de entrada y súbelos a Cloud Storage en la ubicación que espera el trabajo de Cloud Run:
base64 /dev/urandom | head -c 100000 >input_file.txt gcloud storage cp input_file.txt gs://input-PROJECT_ID/input_file.txt
Si creaste un bucket de Cloud Storage con Terraform, puedes Para recuperar el nombre del bucket, ejecuta el siguiente comando:
gcloud storage buckets list gs://input*
El trabajo de Cloud Run puede tardar unos minutos en ejecutarse.
Para confirmar que el trabajo de Cloud Run se haya ejecutado según lo esperado, consulta las ejecuciones del trabajo:
gcloud config set run/region us-central1 gcloud run jobs executions list --job=parallel-job
Deberías ver una ejecución de trabajo correcta en el resultado que indique que se completaron
10/10
tareas.
Obtén más información sobre Activar un flujo de trabajo con eventos o mensajes de Pub/Sub.
Limpia
Si creaste un proyecto nuevo para este instructivo, bórralo. Si usaste un proyecto existente y deseas conservarlo sin los cambios que se agregaron en este instructivo, borra los recursos creados para el instructivo.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, haz lo siguiente:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimina recursos de instructivos
Borra los recursos que creaste en este instructivo:
Borrar el activador de Eventarc:
gcloud eventarc triggers delete cloud-run-job-workflow-trigger --location=us
Borra el flujo de trabajo:
gcloud workflows delete cloud-run-job-workflow --location=us-central1
Borra el trabajo de Cloud Run:
gcloud run jobs delete parallel-job
Borra el bucket de Cloud Storage que se creó para los datos de entrada:
gcloud storage rm --recursive gs://input-PROJECT_ID/
Borra el repositorio de Artifact Registry:
gcloud artifacts repositories delete REPOSITORY --location=us-central1