Exécuter un workflow à l'aide des bibliothèques clientes Cloud
Ce guide de démarrage rapide vous explique comment exécuter un workflow et afficher les résultats d'exécution à l'aide des bibliothèques clientes Cloud.
Pour en savoir plus sur l'installation des bibliothèques clientes Cloud et la configuration de votre environnement de développement, consultez la présentation des bibliothèques clientes de Workflows.
Vous pouvez suivre les étapes suivantes à l'aide de la Google Cloud CLI dans votre terminal ou Cloud Shell.
Avant de commencer
Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour en savoir plus sur la résolution des problèmes, consultez Développer des applications dans un environnement Google Cloud limité.
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API:
gcloud services enable workflows.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/owner
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/owner
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API:
gcloud services enable workflows.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/owner
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/owner
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- (Facultatif) Pour envoyer des journaux à Cloud Logging, accordez le rôle
roles/logging.logWriter
au compte de service.gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter"
Pour en savoir plus sur les rôles et les autorisations des comptes de service, consultez la section Accorder une autorisation de workflow pour accéder aux ressourcesGoogle Cloud .
- Si nécessaire, téléchargez et installez l'outil de gestion du code source Git.
Déployer un exemple de workflow
Après avoir défini un workflow, vous le déployez pour le rendre disponible en exécution. L'étape de déploiement vérifie également que le fichier source peut être exécuté.
Le workflow suivant envoie une requête à une API publique, puis renvoie la réponse de l'API.
Créez un fichier texte avec le nom de fichier
myFirstWorkflow.yaml
avec le contenu suivant:Une fois le workflow créé, vous pouvez le déployer. Toutefois, vous ne devez pas l'exécuter:
gcloud workflows deploy myFirstWorkflow \ --source=myFirstWorkflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --location=CLOUD_REGION
Remplacez
CLOUD_REGION
par un emplacement compatible pour le workflow. La région par défaut utilisée dans les exemples de code estus-central1
.
Obtenir l'exemple de code
Vous pouvez cloner l'exemple de code depuis GitHub.
Clonez le dépôt de l'exemple d'application sur votre machine locale :
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Accédez au répertoire contenant l'exemple de code Workflows:
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Consultez l'exemple de code. Chaque application exemple effectue les opérations suivantes:
- Configure les bibliothèques clientes Cloud pour Workflows.
- Exécute un workflow.
- Interroge l'exécution du workflow (en utilisant un intervalle exponentiel entre les tentatives) jusqu'à la fin de l'exécution.
- Imprime les résultats d'exécution.
Java
Node.js
Python
Exécuter l'exemple de code
Vous pouvez exécuter l'exemple de code et exécuter votre workflow. L'exécution d'un workflow exécute la définition de workflow déployée associée au workflow.
Pour exécuter l'exemple, commencez par installer les dépendances:
Java
mvn compile
Node.js
npm install -D tsx
Python
pip3 install -r requirements.txt
Exécutez le script :
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js
npx tsx index.js
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Remplacez les éléments suivants :
PROJECT_ID
: nom de votre Google Cloud projetCLOUD_REGION
: emplacement de votre workflow (par défaut:us-central1
)WORKFLOW_NAME
: nom de votre workflow (par défaut:myFirstWorkflow
)
Le résultat ressemble à ce qui suit :
Execution finished with state: SUCCEEDED Execution results: ["Thursday","Thursday Night Football","Thursday (band)","Thursday Island","Thursday (album)","Thursday Next","Thursday at the Square","Thursday's Child (David Bowie song)","Thursday Afternoon","Thursday (film)"]
Transmettre des données dans une requête d'exécution
En fonction du langage de la bibliothèque cliente, vous pouvez également transmettre un argument d'environnement d'exécution dans une requête d'exécution. Exemple :
Java
// Creates the execution object.
CreateExecutionRequest request =
CreateExecutionRequest.newBuilder()
.setParent(parent.toString())
.setExecution(Execution.newBuilder().setArgument("{\"searchTerm\":\"Friday\"}").build())
.build();
Node.js
// Execute workflow
try {
const createExecutionRes = await client.createExecution({
parent: client.workflowPath(projectId, location, workflow),
execution: {
argument: JSON.stringify({"searchTerm": "Friday"})
}
});
const executionName = createExecutionRes[0].name;
Pour en savoir plus sur la transmission d'arguments d'environnement d'exécution, consultez la section Transmettre des arguments d'environnement d'exécution dans une requête d'exécution.
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud contenant les ressources.
Supprimez le workflow que vous avez créé :
gcloud workflows delete myFirstWorkflow
Lorsque vous êtes invité à poursuivre l'opération, saisissez
y
.
Le workflow est supprimé.