Workflows vous permet d'exécuter Jobs Cloud Run dans le cadre d'un workflow pour traiter des données plus complexes ou orchestrer un système de jobs existants.
Ce tutoriel explique comment utiliser Workflows pour exécuter une Job Cloud Run qui traite les données transmises en tant qu'environnement à la tâche, en réponse à un événement provenant de Cloud Storage.
Notez que vous pouvez également stocker les données d'événement dans un bucket Cloud Storage qui vous permet de chiffrer les données clés de chiffrement gérées par le client. Pour en savoir plus, consultez Exécuter une tâche Cloud Run qui traite les données d'événement enregistrées dans Cloud Storage
Objectifs
Au cours de ce tutoriel, vous allez :
- Créer un job Cloud Run qui traite les fichiers de données dans un bucket Cloud Storage.
- Déployez un workflow qui:
<ph type="x-smartling-placeholder">
- </ph>
- Accepte un événement Cloud Storage comme argument.
- Vérifie si le bucket Cloud Storage spécifié dans l'événement est le même bucket que celui utilisé par le job Cloud Run.
- Si c'est le cas, utilisez le connecteur de l'API Cloud Run Admin. pour exécuter le job Cloud Run.
- Créer un déclencheur Eventarc qui exécute le workflow en réponse aux événements affectant le bucket Cloud Storage.
- Déclenchez le workflow en mettant à jour un fichier de données d'entrée dans le fichier bucket Cloud Storage.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Avant de commencer
Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour obtenir des informations de dépannage, consultez la page Développer des applications dans un environnement Google Cloud limité.
Console
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows.
-
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.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows.
-
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.
-
- Avant de créer un déclencheur pour des événements directs depuis Cloud Storage,
accorder le
Pub/Sub
le rôle Éditeur (
roles/pubsub.publisher
) Agent de service Cloud Storage: <ph type="x-smartling-placeholder">- </ph>
- Dans la console Google Cloud, accédez à
IAM.
- Cochez la case Inclure les attributions de rôles fournies par Google.
- Dans la colonne Compte principal, recherchez le bucket Cloud Storage
Agent de service avec le formulaire
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
, puis cliquez sur Modifier compte principal sur la ligne correspondante. - Cliquez sur Ajouter un rôle. ou Ajouter un autre rôle
- Dans la liste Sélectionnez un rôle, appliquez le filtre Éditeur Pub/Sub, puis sélectionnez rôle de ressource.
- Cliquez sur Enregistrer.
- Dans la console Google Cloud, accédez à
IAM.
- Si vous avez activé l'agent de service Cloud Pub/Sub sur ou
avant le 8 avril 2021, pour permettre le push Pub/Sub authentifié
de requête, accordez
Service
Rôle de créateur de jetons de compte (
roles/iam.serviceAccountTokenCreator
) à l'agent de service. Sinon, ce rôle est accordé par défaut: <ph type="x-smartling-placeholder">- </ph>
- Dans la console Google Cloud, accédez à
IAM.
- Cochez la case Inclure les attributions de rôles fournies par Google.
- Dans la colonne Nom, recherchez le Compte de service Cloud Pub/Sub puis cliquez sur . Modifier compte principal sur la ligne correspondante.
- Cliquez sur Ajouter un rôle. ou Ajouter un autre rôle
- Dans la liste Sélectionnez un rôle, appliquez le filtre Créateur de jetons du compte de service, puis sélectionnez le rôle.
- Cliquez sur Enregistrer.
- Dans la console Google Cloud, accédez à
IAM.
-
Dans la console Google Cloud, activez Cloud Shell.
En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
Cloud Shell accepte les commandes
/dev/urandom
dans
dans ce tutoriel qui génèrent des nombres pseudo-aléatoires.
gcloud
Utiliser un terminal en ligne avec la gcloud CLI configurer et activer Cloud Shell:
En bas de la page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
Cloud Shell accepte les commandes
/dev/urandom
dans dans ce tutoriel qui génèrent des nombres pseudo-aléatoires.- Créez ou sélectionnez un projet Google Cloud.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
-
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
-
- Vérifiez que la facturation est activée pour votre projet Google Cloud.
- Activez les API 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
- Créez un compte de service que votre workflow utilisera pour l'authentification
avec d'autres services Google Cloud et attribuez-lui les rôles appropriés.
- Créez le compte de service:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAME
par le nom le compte de service. - Attribuez des rôles au compte de service géré par l'utilisateur que vous avez créé dans la
à l'étape précédente. Exécutez la commande ci-dessous une fois pour chacun des éléments suivants :
les rôles IAM, ou vous pouvez utiliser l'option
--role
; plusieurs fois dans une seule commande:roles/eventarc.eventReceiver
: pour recevoir des événementsroles/logging.logWriter
: pour écrire des journauxroles/run.admin
: pour exécuter Cloud Run emploiroles/workflows.invoker
: pour appeler des workflows
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=ROLE
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez créé le compte de serviceROLE
: rôle à attribuer au gestionnaire compte de service
- Créez le compte de service:
- Avant de créer un déclencheur pour des événements directs à partir de Cloud Storage, attribuez le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
) à l'agent de service 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 vous avez activé l'agent de service Cloud Pub/Sub le 8 avril 2021 ou à une date antérieure, attribuez le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator
) au compte de service pour accepter les requêtes push Pub/Sub authentifiées. Sinon, ce rôle est attribué par défaut :gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Remplacez PROJECT_NUMBER
par votre numéro de projet Google Cloud. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Terraform
Utiliser un terminal en ligne avec la gcloud CLI configurer et activer Cloud Shell:
En bas de la page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
Cloud Shell accepte les commandes
/dev/urandom
dans dans ce tutoriel qui génèrent des nombres pseudo-aléatoires.- Créez ou sélectionnez un projet Google Cloud.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
-
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
-
- Vérifiez que la facturation est activée pour votre projet Google Cloud.
- Activez les API 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
Créez un compte de service que votre workflow utilisera pour l'authentification avec d'autres services Google Cloud et attribuez-lui les rôles appropriés. De plus, pour prendre en charge les événements directs depuis Cloud Storage, accordez au rôle Pub/Sub Éditeur (
roles/pubsub.publisher
) au rôle agent de service Cloud Storage.Modifiez votre fichier
main.tf
comme indiqué dans l'exemple suivant. Pour en savoir plus, consultez les Documentation du fournisseur Google pour TerraformPour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Notez que dans un workflow Terraform classique, vous appliquez l'intégralité du plan une seule fois. Toutefois, pour les besoins de ce tutoriel, vous pouvez cibler ressource spécifique. Exemple :
terraform apply -target="google_service_account.workflows"
- Si vous avez activé l'agent de service Cloud Pub/Sub le 8 avril 2021 ou à une date antérieure, attribuez le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator
) au compte de service pour accepter les requêtes push Pub/Sub authentifiées. Sinon, ce rôle est attribué par défaut :gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Remplacez PROJECT_NUMBER
par votre numéro de projet Google Cloud. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Créer un job Cloud Run
Ce tutoriel utilise un exemple de job Cloud Run de GitHub. Le poste lit les données d'un fichier d'entrée stocké dans Cloud Storage et effectue certaines un traitement arbitraire pour chaque ligne du fichier.
Récupérez l'exemple de code en clonant le dépôt de l'exemple d'application dans votre environnement machine:
git clone https://github.com/GoogleCloudPlatform/jobs-demos.git
Vous pouvez également Télécharger l'exemple dans un fichier ZIP et l'extraire.
Accédez au répertoire qui contient l'exemple de code :
cd jobs-demos/parallel-processing
Créez un bucket Cloud Storage pour stocker un fichier d'entrée pouvant être sont écrites dans un événement et le déclenchent:
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
- Cliquez sur add Créer.
- Sur la page Créer un bucket, saisissez le nom du bucket:
input-PROJECT_ID
RemplacezPROJECT_ID
par l'ID de votre projet Google Cloud. - Conservez les autres valeurs par défaut.
- Cliquez sur Créer.
gcloud
Exécutez la commande
gcloud storage buckets create
:gcloud storage buckets create gs://input-PROJECT_ID
Si la requête aboutit, la commande renvoie le message suivant :
Creating gs://input-PROJECT_ID/...
Terraform
Pour créer un bucket Cloud Storage, utilisez la
google_storage_bucket
ressource et modifiez votre fichiermain.tf
comme indiqué dans dans l'exemple suivant.Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base
Notez que dans un workflow Terraform classique, vous appliquez l'intégralité du plan en même temps. Toutefois, pour les besoins de ce tutoriel, vous pouvez cibler ressource spécifique. Exemple :
terraform apply -target="random_id.bucket_name_suffix"
et
terraform apply -target="google_storage_bucket.default"
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Créez un dépôt standard Artifact Registry dans lequel vous pouvez stocker vos image de conteneur:
Console
Dans la console Google Cloud, accédez à Artifact Registry Dépôts:
Cliquez sur
. Créer un dépôtSaisissez un nom pour le dépôt, par exemple
my-repo
. Pour chaque emplacement de dépôt d'un projet, les noms de dépôt doivent être uniques.Conservez le format par défaut, qui devrait être Docker.
Conservez le mode par défaut qui devrait être Standard.
Pour la région, sélectionnez us-central1 (Iowa).
Conservez les autres valeurs par défaut.
Cliquez sur Créer.
gcloud
Exécutez la commande suivante :
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=us-central1
Remplacez
REPOSITORY
par un nom unique pour le (par exemple,my-repo
). Pour chaque emplacement de dépôt d'un les noms des dépôts doivent être uniques.Terraform
Pour créer un dépôt Artifact Registry, utilisez la Ressource
google_artifact_registry_repository
et modifiez votre fichiermain.tf
comme indiqué dans l'exemple suivant.Notez que dans un workflow Terraform classique, vous appliquez l'intégralité du plan une seule fois. Toutefois, pour les besoins de ce tutoriel, vous pouvez cibler ressource spécifique. Exemple :
terraform apply -target="google_artifact_registry_repository.default"
Créez l'image de conteneur à l'aide d'un buildpack Google Cloud par défaut:
export SERVICE_NAME=parallel-job gcloud builds submit \ --pack image=us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/${SERVICE_NAME}
Remplacez
REPOSITORY
par le nom de votre dépôt Artifact Registry.La compilation peut prendre quelques minutes.
Créez un job Cloud Run qui déploie l'image de conteneur:
Console
Dans la console Google Cloud, accédez à Cloud Run. :
Cliquez sur Créer un job pour afficher le formulaire Créer un job.
- Dans le formulaire, sélectionnez
us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest
comme URL de l'image de conteneur Artifact Registry. - Facultatif: saisissez
parallel-job
comme nom de tâche. - Facultatif: Pour la région, sélectionnez us-central1 (Iowa).
- Pour le nombre de tâches que vous souhaitez exécuter dans le job, saisissez
10
Toutes les tâches doivent réussir pour que le job aboutisse. Par par défaut, les tâches s'exécutent en parallèle.
- Dans le formulaire, sélectionnez
Développez les sections Conteneur, variables Secrets, connexions et sécurité et conserver tous les paramètres par défaut, à l'exception des suivants : paramètres:
Cliquez sur l'onglet Général.
- Pour la commande du conteneur, saisissez
python
. - Pour l'argument de conteneur, saisissez
process.py
.
- Pour la commande du conteneur, saisissez
Cliquez sur l'onglet Variables et secrets.
- Cliquez sur Ajouter une variable, puis saisissez
INPUT_BUCKET
pour la etinput-PROJECT_ID
pour . - Cliquez sur Ajouter une variable, puis saisissez
INPUT_FILE
pour la nom etinput_file.txt
pour la valeur.
- Cliquez sur Ajouter une variable, puis saisissez
Pour créer la tâche, cliquez sur Créer.
gcloud
Définissez la région Cloud Run par défaut:
gcloud config set run/region us-central1
Créez le job 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
Notez que si vous ne spécifiez pas de paramètre tag d'image, Artifact Registry recherche l'image avec le tag
latest
par défaut.Pour obtenir la liste complète des options disponibles lors de la création d'un job, consultez la commande gcloud run jobs create documentation sur la ligne de commande.
Une fois le job créé, un message s'affiche, indiquant avec succès.
Terraform
Pour créer un job Cloud Run, utilisez la Ressource
google_cloud_run_v2_job
et modifiez votre fichiermain.tf
comme indiqué dans l'exemple suivant.Notez que dans un workflow Terraform classique, vous appliquez l'intégralité du plan une seule fois. Toutefois, pour les besoins de ce tutoriel, vous pouvez cibler ressource spécifique. Exemple :
terraform apply -target="google_cloud_run_v2_job.default"
Déployer un workflow qui exécute le job Cloud Run
Définir et déployer un workflow qui exécute le job Cloud Run que vous venez de créer. La définition d'un workflow se compose d'une série d'étapes décrits à l'aide du Syntaxe des workflows.
Console
Dans la console Google Cloud, accédez à Page Workflows:
Cliquez sur
Créer :Saisissez un nom pour le nouveau workflow, par exemple
cloud-run-job-workflow
.Pour la région, sélectionnez us-central1 (Iowa).
Dans le champ Compte de service, sélectionnez le compte de service créé précédemment.
Le compte de service sert d'identité au workflow. Vous devriez avoir le rôle Administrateur Cloud Run a déjà été attribué au compte de service. le workflow peut exécuter le job Cloud Run.
Cliquez sur Suivant.
Dans l'éditeur de workflow, saisissez la définition suivante pour votre workflow:
Cliquez sur Déployer.
gcloud
Créez un fichier de code source pour votre workflow:
touch cloud-run-job-workflow.yaml
Copiez la définition de workflow suivante dans le fichier de code source:
Déployez le workflow en saisissant la commande suivante :
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
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME
: nom de le compte de service que vous avez créé précédemmentPROJECT_ID
: l'ID de votre Projet Google Cloud
Le compte de service sert d'identité au workflow. Vous devriez avoir a déjà attribué le rôle
roles/run.admin
au compte de service. le workflow peut exécuter le job Cloud Run.
Terraform
Pour créer un workflow, utilisez la
Ressource google_workflows_workflow
et modifiez votre fichier main.tf
comme indiqué dans l'exemple suivant.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Notez que dans un workflow Terraform classique, vous appliquez l'ensemble du plan en une seule fois. Toutefois, pour les besoins de ce tutoriel, vous pouvez cibler ressource. Exemple :
terraform apply -target="google_workflows_workflow.default"
Le workflow effectue les opérations suivantes:
Étape
init
: accepte un événement Cloud Storage comme argument, puis définit les variables nécessaires.check_input_file
: vérifie si le bucket Cloud Storage spécifié dans l'événement est le bucket utilisé par le job Cloud Run.- Si c'est le cas, le workflow passe à l'étape
run_job
. - Si ce n'est pas le cas, le workflow s'arrête, ce qui interrompt le traitement ultérieur.
- Si c'est le cas, le workflow passe à l'étape
Étape
run_job
: utilise le connecteur de l'API Cloud Run Admin Méthodegoogleapis.run.v1.namespaces.jobs.run
pour exécuter le job. Les noms du bucket Cloud Storage et des fichiers de données transmises en tant que variables de remplacement du workflow à la tâche.Étape
finish
: renvoie des informations sur l'exécution du job à la suite d'une le workflow.
Créer un déclencheur Eventarc pour le workflow
Pour exécuter automatiquement le workflow et, à son tour, exécuter Cloud Run chaque fois que le fichier de données d'entrée est mis à jour, créez un objet Eventarc qui répond aux événements Cloud Storage dans le bucket contenant le fichier de données d'entrée.
Console
Dans la console Google Cloud, accédez à Page Workflows:
Cliquez sur le nom de votre workflow, par exemple
cloud-run-job-workflow
.Sur la page Détails du workflow, cliquez sur
Modifier :Sur la page Modifier le workflow, dans la section Déclencheurs, Cliquez sur Ajouter un déclencheur > Eventarc
Le volet Déclencheur Eventarc s'ouvre.
Dans le champ Nom du déclencheur, saisissez un nom pour le déclencheur. Par exemple :
cloud-run-job-workflow-trigger
Dans la liste Fournisseur d'événements, sélectionnez Cloud Storage.
Dans la liste Événement, sélectionnez google.cloud.storage.object.v1.finalized.
Dans le champ Bucket, sélectionnez le bucket contenant les données d'entrée. . Le nom du bucket se présente sous la forme suivante :
input-PROJECT_ID
Dans le champ Compte de service, sélectionnez le compte de service créé précédemment.
Le compte de service sert d'identité au déclencheur. Vous devriez avoir les rôles suivants sont déjà attribués au compte de service:
- Eventarc Event receiver: permet de recevoir des événements.
- Demandeur de workflows: pour exécuter des workflows
Cliquez sur Enregistrer le déclencheur.
Le déclencheur Eventarc apparaît désormais dans la section Déclencheurs de la page Modifier le workflow.
Cliquez sur Suivant.
Cliquez sur Déployer.
gcloud
Créez un déclencheur Eventarc en exécutant la commande suivante:
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
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google CloudSERVICE_ACCOUNT_NAME
: nom du service que vous avez créé précédemment.
Le compte de service sert d'identité au déclencheur. Vous devriez avoir les rôles suivants sont déjà attribués au compte de service:
roles/eventarc.eventReceiver
: pour recevoir des événementsroles/workflows.invoker
: permet d'exécuter des workflows.
Terraform
Pour créer un déclencheur, utilisez la
Ressource google_eventarc_trigger
et modifiez votre fichier main.tf
comme indiqué dans l'exemple suivant.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Notez que dans un workflow Terraform classique, vous appliquez l'ensemble du plan en une seule fois. Toutefois, pour les besoins de ce tutoriel, vous pouvez cibler ressource. Exemple :
terraform apply -target="google_eventarc_trigger.default"
Chaque fois qu'un fichier est importé ou écrasé dans Cloud Storage bucket contenant le fichier de données d'entrée, le workflow est exécuté avec l'événement Cloud Storage correspondant en tant qu'argument.
Déclencher le workflow
Testez le système de bout en bout en mettant à jour le fichier de données d'entrée dans Cloud Storage.
Générer de nouvelles données pour le fichier d'entrée et les importer dans Cloud Storage à l'emplacement attendu par le job Cloud Run:
base64 /dev/urandom | head -c 100000 >input_file.txt gsutil cp input_file.txt gs://input-PROJECT_ID/input_file.txt
Si vous avez créé un bucket Cloud Storage à l'aide de Terraform, vous pouvez Récupérez le nom du bucket en exécutant la commande suivante:
gcloud storage buckets list gs://input*
L'exécution de la tâche Cloud Run peut prendre quelques minutes.
Vérifiez que le job Cloud Run s'est exécuté comme prévu en affichant les exécutions du job:
gcloud config set run/region us-central1 gcloud run jobs executions list --job=parallel-job
Une exécution de job réussie doit s'afficher dans le résultat, indiquant que
10/10
tâches sont terminées.
En savoir plus sur déclencher un workflow avec des événements ou des messages Pub/Sub.
Effectuer un nettoyage
Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Supprimer les ressources du tutoriel
Supprimez les ressources que vous avez créées dans ce tutoriel:
Supprimez le déclencheur Eventarc :
gcloud eventarc triggers delete cloud-run-job-workflow-trigger --location=us
Supprimez le workflow:
gcloud workflows delete cloud-run-job-workflow --location=us-central1
Supprimez le job Cloud Run:
gcloud run jobs delete parallel-job
Supprimez le bucket Cloud Storage créé pour les données d'entrée:
gcloud storage rm --recursive gs://input-PROJECT_ID/
Supprimez le dépôt Artifact Registry:
gcloud artifacts repositories delete REPOSITORY --location=us-central1