Contrairement aux workflows standards qui instancient une ressource de modèle de workflow créée précédemment, les workflows intégrés utilisent un fichier YAML ou une définition WorkflowTemplate intégrée pour exécuter un workflow.
.Créer et exécuter un workflow intégré
Consultez Instancier un workflow à l'aide d'un fichier YAML.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id: Google Cloud ID du projet
- region : région du cluster, telle que "us-central1"
- zoneUri : spécifiez un élément zone dans la région du cluster, par exemple "us-central1-b", ou laissez le champ vide ("") pour utiliser un emplacement défini par sélection de zone automatique.
- clusterName : nom du cluster
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/project-id /regions/region /workflowTemplates:instantiateInline
Corps JSON de la requête :
{ "jobs": [ { "hadoopJob": { "mainJarFileUri": "file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar", "args": [ "teragen", "1000", "hdfs:///gen/" ] }, "stepId": "teragen" }, { "hadoopJob": { "mainJarFileUri": "file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar", "args": [ "terasort", "hdfs:///gen/", "hdfs:///sort/" ] }, "stepId": "terasort", "prerequisiteStepIds": [ "teragen" ] } ], "placement": { "managedCluster": { "clusterName": "cluster-name ", "config": { "gceClusterConfig": { "zoneUri": "zone " } } } } }
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://dataproc.googleapis.com/v1/projects/project-id /regions/region /workflowTemplates:instantiateInline"
PowerShell (Windows)
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://dataproc.googleapis.com/v1/projects/project-id /regions/region /workflowTemplates:instantiateInline" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/project-id/regions/region/operations/2fbd0dad-...", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.WorkflowMetadata", "graph": { "nodes": [ { "stepId": "teragen", "state": "RUNNABLE" }, { "stepId": "terasort", "prerequisiteStepIds": [ "teragen" ], "state": "BLOCKED" } ] }, "state": "PENDING", "startTime": "2020-04-02T22:50:44.826Z" } }
Actuellement, la création de workflows intégrés n'est pas possible dans la console Google Cloud. Vous pouvez afficher des modèles de workflow et des workflows instanciés à partir de la page Workflows de Dataproc.