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 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 de ce problème, consultez Développer des applications dans un environnement Google Cloud limité.
- 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 sans frais pour exécuter, tester et déployer des charges de travail.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activer l'API Workflows
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.gcloud services enable workflows.googleapis.com
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activer l'API Workflows
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.gcloud services enable workflows.googleapis.com
-
Configurez l'authentification :
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
roles/iam.serviceAccountCreator) et "Administrateur IAM du projet" (roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles. -
Créez le compte de service :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAMEpar le nom que vous souhaitez donner au compte de service. -
Attribuez le rôle IAM
roles/logging.logWriterau 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
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME: nom du compte de service.PROJECT_ID: ID du projet dans lequel vous avez créé le compte de service.
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
- Si nécessaire, téléchargez et installez l'outil de gestion du code source Git.
Pour en savoir plus sur les rôles et les autorisations des comptes de service, consultez Accorder à un workflow l'autorisation d'accéder aux ressourcesGoogle Cloud .
Rôles requis
Pour obtenir les autorisations nécessaires pour suivre ce guide de démarrage rapide, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Utilisateur du compte de service (
roles/iam.serviceAccountUser) -
Administrateur de workflows (
roles/workflows.admin)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Déployer un exemple de workflow
Après avoir défini un workflow, vous pouvez le déployer 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.yamlavec le contenu suivant :Après avoir créé le workflow, 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_REGIONpar 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 ordinateur local :
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
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:
C#
cd dotnet-docs-samples/workflows/api/Workflow.Samples/
Go
cd golang-samples/workflows/executions/
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.
- Il 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.
C#
Go
Java
Node.js
Python
Exécuter l'exemple de code
Vous pouvez exécuter l'exemple de code et votre workflow. L'exécution d'un workflow exécute la définition du workflow déployé associée au workflow.
Pour exécuter l'exemple, commencez par installer les dépendances:
C#
dotnet restore
Go
go mod download
Java
mvn compile
Node.js
npm install -D tsx
Python
pip3 install -r requirements.txt
Exécutez le script :
C#
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME dotnet run
Go
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME go run .
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 projet Google CloudCLOUD_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
Selon le langage de la bibliothèque cliente, vous pouvez également transmettre un argument d'exécution dans une requête d'exécution. Exemple :
C#
Go
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;
Python
Pour en savoir plus sur la transmission d'arguments d'exécution, consultez Transmettre des arguments d'exécution dans une requête d'exécution.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.
Supprimez le workflow que vous avez créé :
gcloud workflows delete myFirstWorkflowLorsque vous êtes invité à poursuivre l'opération, saisissez
y.
Le workflow est supprimé.