Créer et gérer des workflows

Vous pouvez créer et gérer des workflows dans la console Google Cloud ou à l'aide de Google Cloud CLI dans votre terminal ou Cloud Shell. Vous pouvez également gérer les workflows via l'API Workflows.

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Workflows API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Workflows API.

    Enable the API

gcloud

  1. 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.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Workflows API:

    gcloud services enable workflows.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. 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.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Workflows API:

    gcloud services enable workflows.googleapis.com

REST

Pour gérer les workflows à l'aide de l'API Workflows, nous vous recommandons d'utiliser les bibliothèques clientes fournies par Google pour appeler le service workflows.googleapis.com. Pour en savoir plus, consultez la page API Workflows.

Créer un compte de service

Un compte de service représente l'identité d'un workflow et détermine les autorisations dont il dispose et les ressources Google Cloud auxquelles il peut accéder. Créez un compte de service si vous n'en possédez pas déjà un. Ensuite, attribuez-lui les rôles nécessaires pour gérer les workflows et créer des journaux.

Si vous ne spécifiez pas de compte de service lors de la création du workflow, celui-ci utilise le compte de service Compute Engine par défaut pour son identité. Pour en savoir plus, consultez la section Accorder à un workflow l'accès aux ressources Google Cloud.

Nous vous recommandons vivement d'utiliser un compte de service ne bénéficiant que des privilèges les plus faibles nécessaires pour accéder aux ressources requises.

Notez que pour créer une ressource et lui associer un compte de service, vous devez disposer des autorisations nécessaires pour créer cette ressource et lui accorder l'identité du compte de service que vous rattacherez à la ressource. Pour en savoir plus, consultez la section Autorisations de compte de service.

Console

  1. Dans la console Google Cloud, accédez à la page Comptes de service.

    Accéder à la page "Comptes de service"

  2. Sélectionnez un projet, puis cliquez sur Créer un compte de service.

  3. Dans le champ Nom du compte de service, saisissez un nom.

    Ce nom doit comporter entre 6 et 30 caractères. Il peut inclure des caractères alphanumériques minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.

  4. Cliquez sur Créer et continuer.

  5. Cliquez sur Select a role (Sélectionner un rôle).

  6. Sélectionnez les rôles suivants, en cliquant sur Ajouter un autre rôle si nécessaire:

    1. Pour créer, mettre à jour et exécuter des workflows, sélectionnez Workflows > Workflows Editor (Workflows > Workflows Editor).
    2. Pour envoyer des journaux à Cloud Logging, sélectionnez Logging > Rédacteur de journaux.
  7. Cliquez sur OK pour terminer la création du compte de service.

gcloud

  1. Créez le compte de service.

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. Accordez des autorisations au compte de service en attribuant des rôles.

    1. Pour créer, mettre à jour et exécuter des workflows, attribuez le rôle roles/workflows.editor:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/workflows.editor"
    2. Pour envoyer des journaux à Cloud Logging, attribuez le rôle roles/logging.logWriter:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/logging.logWriter"

    Remplacez les éléments suivants :

    • SERVICE_ACCOUNT : nom du compte de service. Il doit comporter entre 6 et 30 caractères alphanumériques pouvant inclure des minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.

    • PROJECT_ID: ID de votre projet

REST

Vous pouvez utiliser la méthode serviceAccounts.create pour créer un compte de service. Pour en savoir plus, consultez la section Créer des comptes de service.

Vous pouvez accorder plusieurs rôles de manière programmatique en modifiant et en définissant la stratégie d'autorisation pour une ressource à l'aide de la méthode setIamPolicy. Pour en savoir plus, consultez la section Attribuer ou révoquer plusieurs rôles de manière automatisée.

Créer un workflow

Une définition de workflow est constituée d'une série d'étapes décrites à l'aide de la syntaxe Workflows, qui peut être écrite au format YAML ou JSON. 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é. Elle échoue si le fichier source ne contient pas de définition de workflow valide.

La modification des fichiers YAML peut entraîner des erreurs. Vous pouvez créer votre workflow à l'aide d'un IDE ou d'un éditeur de code source de votre choix, et configurer la saisie semi-automatique et la validation de la syntaxe pour réduire les erreurs.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows :

    Accéder à "Workflows"

  2. Cliquez sur  Créer.

  3. Saisissez un nom pour le workflow, par exemple myFirstWorkflow. Le nom peut contenir des lettres, des chiffres, des traits de soulignement et des tirets. Il doit commencer par une lettre et se terminer par un chiffre ou une lettre.

  4. Vous pouvez également ajouter une description du workflow.

  5. Dans la liste Région, sélectionnez un emplacement approprié pour déployer votre workflow. Exemple : us-central1.

  6. Dans la liste Compte de service, sélectionnez un compte de service que votre workflow utilisera pour accéder à d'autres services Google Cloud. Pour en savoir plus, consultez la section Créer un compte de service de ce document.

  7. Vous avez également la possibilité d'effectuer l'une des opérations suivantes :

    1. Indiquez le niveau de journalisation des appels que vous souhaitez appliquer à la définition du workflow. Dans la liste Niveau de journalisation des appels, sélectionnez l'une des options suivantes:

      • Non spécifié: aucun niveau de journalisation n'est spécifié. Il s'agit de l'option par défaut. Un niveau de journalisation d'exécution est prioritaire sur tout niveau de journalisation de workflow, sauf si celui-ci n'est pas spécifié (valeur par défaut). Dans ce cas, le niveau de journalisation du workflow s'applique.
      • Erreurs uniquement: consigne toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.
      • Tous les appels: consigne tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.
      • Aucun journal: aucun journal d'appels.
    2. Spécifiez une clé Cloud Key Management Service que le workflow doit utiliser pour le chiffrement des données: sélectionnez Clé de chiffrement gérée par le client (CMEK). Pour en savoir plus, consultez la page Utiliser des clés de chiffrement gérées par le client.

    3. Spécifiez une variable d'environnement accessible par votre workflow au moment de l'exécution. Pour en savoir plus, consultez Utiliser des variables d'environnement.

    4. Ajoutez un libellé : les libellés sont des paires clé/valeur qui vous aident à organiser vos instances Google Cloud. Pour en savoir plus, consultez la section Que sont les libellés ? Les libellés de workflow sont hérités par les exécutions du workflow. Pour afficher les libellés d'exécution, utilisez la méthode workflows.executions.list pour lister et filtrer les exécutions de workflow.

    5. Planifiez votre workflow: sélectionnez Ajouter un déclencheur > Cloud Scheduler. Pour en savoir plus, consultez la page Planifier un workflow à l'aide de Cloud Scheduler.

    6. Déclenchez un workflow via un événement ou un message Pub/Sub : sélectionnez Ajouter un déclencheur > Eventarc. Pour en savoir plus, consultez la page Déclencher un workflow avec des événements ou des messages Pub/Sub.

  8. Cliquez sur Suivant.

  9. Dans l'éditeur de workflow, saisissez la définition de votre workflow. Consultez un exemple de workflow.

  10. Cliquez sur Déployer.

gcloud

  1. Assurez-vous que le code source de votre workflow est enregistré dans un fichier YAML ou JSON, par exemple MY_WORKFLOW.YAML ou MY_WORKFLOW.JSON. Consultez un exemple de workflow.

  2. Ouvrez un terminal.

  3. Vous pouvez créer et déployer un workflow à l'aide de la commande gcloud workflows deploy:

    gcloud workflows deploy WORKFLOW_NAME \
        --location=LOCATION \
        --call-log-level=CALL_LOGGING_LEVEL \
        --description="DESCRIPTION" \
        --labels="LABEL_KEY=LABEL_VALUE" \
        --set-env-vars="ENV_KEY=ENV_VALUE" \
        --kms-key=ENCRYPT_KEY \
        --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE

    Remplacez les éléments suivants :

    • WORKFLOW_NAME: nom de votre workflow (par exemple, myFirstWorkflow) Le nom peut contenir des lettres, des chiffres, des traits de soulignement et des tirets. Il doit commencer par une lettre et se terminer par un chiffre ou une lettre.

    • LOCATION: région dans laquelle déployer votre workflow (par exemple, us-central1)

    • CALL_LOGGING_LEVEL : Facultatif. Niveau de journalisation des appels à appliquer lors de l'exécution. Peut être une valeur parmi :

      • none: aucun niveau de journalisation n'est spécifié. Il s'agit de l'option par défaut. Un niveau de journalisation d'exécution est prioritaire sur un niveau de journalisation de workflow, sauf si celui-ci n'est pas spécifié (valeur par défaut). Dans ce cas, le niveau de journalisation du workflow s'applique.
      • log-errors-only: journalise toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.
      • log-all-calls: journalise tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.
      • log-none: aucune journalisation des appels.
    • DESCRIPTION : Facultatif. Description du workflow.

    • LABEL_KEY=LABEL_VALUE : Facultatif. Liste de paires clé-valeur de libellé qui vous aide à organiser vos instances Google Cloud (par exemple, name=wrench). Pour en savoir plus, consultez la section Que sont les libellés ? Les libellés de workflow sont hérités par les exécutions du workflow. Pour afficher les libellés d'exécution, utilisez la méthode workflows.executions.list pour lister et filtrer les exécutions de workflow.

    • ENV_KEY=ENV_VALUE : Facultatif. Liste de paires clé-valeur de la variable d'environnement (par exemple, MONTH=January). Pour en savoir plus, consultez Utiliser des variables d'environnement.

    • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS que le workflow doit utiliser pour le chiffrement des données au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Pour en savoir plus, consultez la page Utiliser des clés de chiffrement gérées par le client.

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: Facultatif. Le compte de service que votre workflow utilisera pour accéder à d'autres services Google Cloud. Pour en savoir plus, consultez la section Créer un compte de service de ce document.

    • YAML_OR_JSON_SOURCE_FILE: fichier source de la définition du workflow. Exemple : myFirstWorkflow.yaml.

REST

Pour créer un workflow avec un nom spécifié, utilisez la méthode projects.locations.workflows.create et le paramètre de requête workflowId pour spécifier un ID pour le workflow.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • WORKFLOW_NAME: nom de votre workflow (par exemple, myFirstWorkflow). Le nom peut contenir des lettres, des chiffres, des traits de soulignement et des tirets. Il doit commencer par une lettre et se terminer par un chiffre ou une lettre.
  • DESCRIPTION : Facultatif. Description de votre workflow. Ne doit pas comporter plus de 1 000 caractères Unicode.
  • LABEL_KEY et LABEL_VALUE: facultatifs. Carte des paires clé-valeur de libellé qui vous aident à organiser vos instances Google Cloud. Par exemple : {"name": "wrench", "mass": "1kg", "count": "3"} Pour en savoir plus, consultez la section Que sont les libellés ? Les libellés de workflow sont hérités par les exécutions du workflow. Pour afficher les libellés d'exécution, utilisez la méthode workflows.executions.list pour lister et filtrer les exécutions de workflow.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facultatif. Le compte de service que votre workflow utilisera pour accéder à d'autres services Google Cloud. L'ID de projet correspond à l'ID de votre projet Google Cloud. Pour en savoir plus, consultez la section Créer un compte de service de ce document.
  • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS que le workflow doit utiliser pour le chiffrement des données au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Pour en savoir plus, consultez la page Utiliser des clés de chiffrement gérées par le client.
  • CALL_LOGGING_LEVEL : Facultatif. Niveau de journalisation des appels à appliquer lors de l'exécution. Par défaut, aucun niveau de journalisation n'est spécifié, et le niveau de journalisation du workflow s'applique à la place. Pour en savoir plus, consultez la section Envoyer des journaux à Logging. Choisissez l'une des options suivantes :
    • CALL_LOG_LEVEL_UNSPECIFIED: aucun niveau de journalisation n'est spécifié et le niveau de journalisation du workflow s'applique à la place. Il s'agit de la valeur par défaut. Sinon, le niveau de journalisation de l'exécution s'applique et prévaut sur le niveau de journalisation du workflow.
    • LOG_ERRORS_ONLY: consigne toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.
    • LOG_ALL_CALLS: journalise tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.
    • LOG_NONE: aucune journalisation des appels.
  • ENV_KEY et ENV_VALUE: facultatifs. Mappage des paires clé-valeur des variable d'environnement (par exemple, { "month": "January", "day": "Monday"}). Pour en savoir plus, consultez la section Utiliser des variables d'environnement.
  • SOURCE_CODE: définition du workflow. Vous devez échapper les nouvelles lignes en YAML. Par exemple : main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello.

    Vous devez échapper les guillemets dans le code JSON. Par exemple : {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}

  • LOCATION: région dans laquelle le workflow doit être déployé (par exemple, us-central1).

Corps JSON de la requête :

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "create",
    "apiVersion": "v1"
  },
  "done": false
}

Si la valeur de "done" est définie sur false, l'opération est toujours en cours.

Répertorier les workflows

Vous pouvez lister des workflows ou utiliser des filtres pour en récupérer un spécifique.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows.

    Accéder à "Workflows"

    Cette page répertorie vos workflows dans tous les emplacements et inclut des détails tels que les noms, les régions, les dernières révisions, etc.

  2. Pour filtrer vos workflows:

    1. Cliquez sur Filtrer ou sur le champ Filtrer les workflows.
    2. Dans la liste Propriétés, sélectionnez une option permettant de filtrer les workflows.

    Vous pouvez sélectionner une seule propriété ou utiliser l'opérateur logique OR pour ajouter d'autres propriétés.

  3. Pour trier vos workflows, à côté d'un en-tête de colonne compatible, cliquez sur Trier.

gcloud

Répertoriez les workflows à l'aide de la commande gcloud workflows list:

gcloud workflows list --location=LOCATION

Remplacez LOCATION par l'ID ou l'identifiant complet de l'emplacement de votre workflow.

Cette commande liste vos workflows à l'emplacement spécifié et inclut des informations telles que NAME, STATE, REVISION_ID et UPDATE_TIME d'un workflow.

REST

Pour répertorier les workflows dans un projet et un emplacement donnés, utilisez la méthode projects.locations.workflows.list.

Pour récupérer les détails d'un seul workflow, vous pouvez également utiliser la méthode projects.locations.workflows.get.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION: région dans laquelle les workflows sont déployés (par exemple, us-central1).

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient des instances de Workflow et la réponse doit ressembler à ce qui suit :

{
  "workflows": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
      "state": "ACTIVE",
      "revisionId": "000001-0ce",
      "createTime": "2023-12-08T13:56:59.306770745Z",
      "updateTime": "2023-12-08T13:56:59.547021939Z",
      "revisionCreateTime": "2023-12-08T13:56:59.340161044Z",
      "serviceAccount": "projects/PROJECT_ID/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com",
      "sourceContents": "main:\n    params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
    },
    {
      object (Workflow)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Mettre à jour un workflow

Vous pouvez mettre à jour un workflow existant. Vous devez spécifier le nom du workflow que vous souhaitez mettre à jour et sa source. Notez que vous ne pouvez pas modifier le nom ni l'emplacement d'un workflow.

La mise à jour d'un workflow n'a aucune incidence sur les exécutions en cours. Seules les exécutions futures du workflow utiliseront la configuration mise à jour.

Chaque fois que vous mettez à jour un workflow, son versionID est mis à jour. L'versionID comprend deux parties, séparées par un trait d'union:

  • Nombre commençant à un, qui est incrémenté à chaque mise à jour d'un workflow.

  • Chaîne alphanumérique aléatoire à trois caractères.

Par exemple, 000001-27f indique la version initiale d'un workflow et 000002-d52 indique un workflow qui a été mis à jour une fois.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows.

    Accéder à "Workflows"

  2. Cliquez sur le nom du workflow que vous souhaitez mettre à jour. Notez que vous ne pouvez pas modifier le nom du workflow.

    La page Détails du workflow s'affiche.

  3. Vous pouvez modifier le workflow de différentes manières:

    • Pour modifier la source:

      1. Cliquez sur l'onglet Source.
      2. Cliquez sur Modifier.
      3. Pour enregistrer vos modifications, cliquez sur Enregistrer. Le workflow mis à jour est déployé.
    • Pour mettre à jour la description, le compte de service utilisé par le workflow pour l'authentification, le niveau du journal des appels, les variables d'environnement, les libellés ou la clé de chiffrement:

      1. Cliquez sur l'onglet Détails.
      2. Cliquez sur l'icône appropriée.
      3. Si vous mettez à jour le niveau de journalisation des appels, sélectionnez l'une des options suivantes :
        • Non spécifié: aucun niveau de journalisation n'est spécifié. Il s'agit de l'option par défaut. Un niveau de journalisation d'exécution est prioritaire sur tout niveau de journalisation de workflow, sauf si celui-ci n'est pas spécifié (valeur par défaut). Dans ce cas, le niveau de journalisation du workflow s'applique.
        • Erreurs uniquement: consigne toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.
        • Tous les appels: consigne tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.
        • Aucun journal: aucun journal d'appels.
      4. La mise à jour d'un libellé existant ou l'ajout d'un libellé peut prendre jusqu'à 10 minutes. Les libellés de workflow sont hérités par les exécutions du workflow. Pour afficher les libellés d'exécution, utilisez la méthode workflows.executions.list pour lister et filtrer les exécutions de workflow.
      5. Pour enregistrer vos modifications, cliquez sur Enregistrer. Le workflow mis à jour est déployé.
    • Pour modifier les champs précédents en même temps, ou ajouter ou mettre à jour un déclencheur:

      1. Cliquez sur Modifier.
      2. Pour modifier la source, cliquez sur Suivant.
      3. Pour enregistrer vos modifications et déployer le workflow mis à jour, cliquez sur Déployer.
  4. Si vous souhaitez mettre à jour les rôles de votre compte de service, cliquez sur l'onglet Autorisations.

    1. Les comptes principaux sont des utilisateurs, des groupes, des domaines ou des comptes de service. Pour mettre à jour un principal existant:

      1. Recherchez une ligne contenant le compte principal.
      2. Cliquez sur Modifier le compte principal sur cette ligne.
      3. Cliquez sur Ajouter un autre rôle ou sur Supprimer le rôle.
    2. Si vous ajoutez un rôle, sélectionnez-en un dans la liste Sélectionner un rôle.

    3. Pour ajouter un autre rôle, cliquez sur Ajouter un autre rôle.

    4. Cliquez sur Enregistrer.

gcloud

  1. Ouvrez un terminal.

  2. Sélectionnez le nom du workflow que vous souhaitez mettre à jour. Si vous ne connaissez pas le nom du workflow, vous pouvez saisir la commande suivante pour répertorier tous vos workflows:

    gcloud workflows list
  3. Recherchez le fichier YAML ou JSON dans lequel la source de workflow est enregistrée, par exemple WORKFLOW_NAME.YAML ou WORKFLOW_NAME.JSON.

  4. Vous pouvez mettre à jour un workflow existant pour modifier sa source, sa description, ses libellés, ses variables d'environnement, le niveau du journal des appels, la clé de chiffrement ou le compte de service associé à l'aide de la commande gcloud workflows deploy.

    Vous devez spécifier le nom du workflow que vous souhaitez mettre à jour et sa source. Toutefois, les autres options sont facultatives. Pour supprimer une clé de chiffrement gérée par le client, utilisez l'option --clear-kms-key.

    gcloud workflows deploy WORKFLOW_NAME \
        --call-log-level=CALL_LOGGING_LEVEL \
        --description="DESCRIPTION" \
        --labels="LABEL_KEY=LABEL_VALUE" \
        --set-env-vars="ENV_KEY=ENV_VALUE" \
        --kms-key=ENCRYPT_KEY \
        --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE

    Remplacez les éléments suivants :

    • WORKFLOW_NAME : Obligatoire. Nom de votre workflow.

    • CALL_LOGGING_LEVEL : Facultatif. Niveau de journalisation des appels à appliquer au workflow. Peut être une valeur parmi :

      • none: aucun niveau de journalisation n'est spécifié. Il s'agit de l'option par défaut. Un niveau de journalisation d'exécution est prioritaire sur un niveau de journalisation de workflow, sauf si celui-ci n'est pas spécifié (valeur par défaut). Dans ce cas, le niveau de journalisation du workflow s'applique.
      • log-errors-only: journalise toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.
      • log-all-calls: journalise tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.
      • log-none: aucune journalisation des appels.
    • DESCRIPTION : Facultatif. Description du workflow.

    • LABEL_KEY=LABEL_VALUE : Facultatif. Liste de paires clé-valeur de libellé qui vous aide à organiser vos instances Google Cloud (par exemple, name=wrench). Pour en savoir plus, consultez la section Que sont les libellés ? Les libellés de workflow sont hérités par les exécutions du workflow. Pour afficher les libellés d'exécution, utilisez la méthode workflows.executions.list pour lister et filtrer les exécutions de workflow.

    • ENV_KEY=ENV_VALUE : Facultatif. Liste de paires clé-valeur de la variable d'environnement (par exemple, MONTH=January). Pour en savoir plus, consultez Utiliser des variables d'environnement.

    • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS que le workflow doit utiliser pour le chiffrement des données au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Pour en savoir plus, consultez la page Utiliser des clés de chiffrement gérées par le client.

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: Facultatif. Le compte de service que votre workflow utilisera pour accéder à d'autres services Google Cloud. Si vous souhaitez mettre à jour les rôles de votre compte de service, consultez Autorisez un workflow à accéder aux ressources Google Cloud et Gérer l'accès aux projets, aux dossiers et aux organisations.

    • YAML_OR_JSON_SOURCE_FILE : Obligatoire. Fichier source du workflow au format YAML ou JSON. Exemple : myFirstWorkflow.yaml.

REST

Pour mettre à jour un workflow existant, utilisez la méthode projects.locations.workflows.patch et utilisez éventuellement le paramètre de requête updateMask pour spécifier une liste de champs à mettre à jour.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

Corps JSON de la requête :

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "update",
    "apiVersion": "v1"
  },
  "done": false
}

Si la valeur de "done" est définie sur false, l'opération est toujours en cours.

Supprimer un workflow

Vous pouvez supprimer un workflow existant. La suppression d'un workflow entraîne également la suppression de ses exécutions et l'annulation de toutes les exécutions actives pour le workflow.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows.

    Accéder à "Workflows"

  2. Cliquez sur le nom du workflow que vous souhaitez supprimer, puis sur Supprimer.

  3. Dans l'invite de confirmation de la suppression, saisissez le nom du workflow.

  4. Cliquez sur Confirmer.

gcloud

  1. Ouvrez un terminal.

  2. Recherchez le nom du workflow que vous souhaitez supprimer. Si vous ne connaissez pas le nom du workflow, vous pouvez saisir la commande suivante pour répertorier tous vos workflows:

    gcloud workflows list
  3. Supprimez un workflow à l'aide de la commande gcloud workflows delete:

    gcloud workflows delete WORKFLOW_NAME

    Remplacez WORKFLOW_NAME par le nom de votre workflow.

REST

Pour supprimer un workflow portant un nom spécifique, utilisez la méthode projects.locations.workflows.delete.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • WORKFLOW_NAME: nom du workflow que vous souhaitez supprimer.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION: région dans laquelle le workflow est déployé (par exemple, us-central1).

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "delete",
    "apiVersion": "v1"
  },
  "done": false
}

Si la valeur de "done" est définie sur false, l'opération est toujours en cours.

Étape suivante