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 la Google Cloud CLI dans votre terminal ou dans Cloud Shell. Vous pouvez également gérer des 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. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  2. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  3. Activer l'API Workflows

    Activer l'API

gcloud

  1. Dans la console Google Cloud, activez Cloud Shell.

    Activer 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.

  2. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  3. Activer l'API Workflows

    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 dispose le workflow et les ressources Google Cloud auxquelles il peut accéder. Créez un compte de service si vous n'en avez pas déjà un, puis accordez-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 Accorder à un workflow l'autorisation d'accéder 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 emprunter l'identité du compte de service que vous allez associer à 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 plus modifier son 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 > Éditeur de workflows.
    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 plus modifier son 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 page Créer des comptes de service.

Vous pouvez attribuer plusieurs rôles de manière automatisée en modifiant et en définissant la stratégie d'autorisation d'une ressource à l'aide de la méthode setIamPolicy. Pour en savoir plus, consultez la page Accorder ou révoquer plusieurs rôles par programmation.

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 le déployez pour le rendre disponible à l'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. Attribuez un nom au 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. Si vous le souhaitez, ajoutez une description du workflow.

  5. Dans la liste Région, sélectionnez un emplacement approprié dans lequel déployer votre workflow (par 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 dans 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 étiquettes ?

    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 Deploy (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 traits d'union. 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és qui vous aident à organiser vos instances Google Cloud (par exemple, name=wrench). Pour en savoir plus, consultez la section Que sont les étiquettes ?

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

    • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME que le workflow doit utiliser pour le chiffrement des données. 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 dans ce document.

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

REST

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

Avant d'utiliser les données de requête, 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 traits d'union. 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 de paires clé/valeur de libellés 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 étiquettes ? Notez que l'application du nouveau libellé peut prendre jusqu'à 10 minutes.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com : Facultatif. Compte de service que votre workflow utilisera pour accéder à d'autres services Google Cloud. Il s'agit de votre ID de projet Google Cloud. Pour en savoir plus, consultez la section Créer un compte de service dans ce document.
  • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME que le workflow doit utiliser pour le chiffrement des données. Pour en savoir plus, consultez 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 page 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 l'option par défaut. Sinon, le niveau de journalisation de l'exécution s'applique et est prioritaire 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: consigne tous les appels aux sous-workflows ou aux fonctions de bibliothèque, ainsi que leurs résultats.
    • LOG_NONE: aucune journalisation des appels.
  • ENV_KEY et ENV_VALUE: facultatifs. Mappage de paires clé/valeur de 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 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 répertorier des workflows ou utiliser des filtres pour récupérer un workflow 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 fournit des informations telles 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 en fonction de laquelle vous souhaitez 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, cliquez sur Trier à côté d'un en-tête de colonne accepté.

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 correspondant à l'emplacement de votre workflow.

Cette commande répertorie vos workflows à l'emplacement spécifié et inclut des détails tels que les champs 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, 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 par un, qui s'incrémente chaque fois que vous mettez à jour 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, indiquez le compte de service utilisé par le workflow pour l'authentification, le niveau des journaux d'appels, les variables d'environnement, les étiquettes 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 des journaux d'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. Pour enregistrer vos modifications, cliquez sur Enregistrer. Le workflow mis à jour est déployé.
    • Pour modifier simultanément les champs précédents, ou pour ajouter ou mettre à jour un déclencheur, procédez comme suit:

      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 compte principal existant:

      1. Recherchez la 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 un rôle approprié 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 votre 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 des journaux d'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 indicateurs sont facultatifs. 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és qui vous aident à organiser vos instances Google Cloud (par exemple, name=wrench). Pour en savoir plus, consultez la section Que sont les étiquettes ?

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

    • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME que le workflow doit utiliser pour le chiffrement des données. 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 Accorder à un workflow l'autorisation d'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 la liste des champs à mettre à jour.

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

  • WORKFLOW_NAME: nom de votre workflow (par exemple, myFirstWorkflow).
  • DESCRIPTION : Facultatif. Description de votre workflow. Ne doit pas comporter plus de 1 000 caractères Unicode.
  • LABEL_KEY et LABEL_VALUE: facultatifs. Carte de paires clé/valeur de libellés 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 étiquettes ? Notez que l'application du nouveau libellé peut prendre jusqu'à 10 minutes.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com : Facultatif. Compte de service que votre workflow utilisera pour accéder à d'autres services Google Cloud. Il s'agit de votre ID de projet Google Cloud. Pour en savoir plus, consultez la section Créer un compte de service dans ce document.
  • ENCRYPT_KEY : Facultatif. Une clé Cloud KMS au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME que le workflow doit utiliser pour le chiffrement des données. Pour en savoir plus, consultez 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 page 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 l'option par défaut. Sinon, le niveau de journalisation de l'exécution s'applique et est prioritaire 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: consigne tous les appels aux sous-workflows ou aux fonctions de bibliothèque, ainsi que leurs résultats.
    • LOG_NONE: aucune journalisation des appels.
  • ENV_KEY et ENV_VALUE: facultatifs. Mappage de paires clé/valeur de 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 réduit. Par exemple : {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}.
  • LOCATION: région dans laquelle le workflow est déployé (par exemple, us-central1).
  • UPDATE_FIELDS : Facultatif. Liste des champs à mettre à jour, séparés par une virgule. Si ce champ n'est pas fourni, l'ensemble du processus est mis à jour. Par exemple, description,callLogLevel.

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 du 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. Lorsque vous êtes invité à confirmer la suppression, saisissez le nom du workflow.

  4. Cliquez sur Confirm (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écifié, utilisez la méthode projects.locations.workflows.delete.

Avant d'utiliser les données de requête, 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.

Étapes suivantes