

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter [Comment effectuer une migration depuis CodeCatalyst](migration.md).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exiger des approbations lors des exécutions de flux
<a name="workflows-approval"></a>

Vous pouvez configurer l'exécution d'un flux de travail de manière à ce qu'il nécessite une approbation avant de pouvoir continuer. Pour ce faire, vous devez ajouter une [porte](workflows-gates.md) **d'approbation** au flux de travail. Une *porte d'approbation* empêche le déroulement d'un flux de travail tant qu'un utilisateur ou un groupe d'utilisateurs n'a pas soumis une ou plusieurs approbations dans la CodeCatalyst console. Une fois que toutes les approbations ont été données, la porte est « déverrouillée » et le flux de travail peut reprendre.

Utilisez une porte d'**approbation** dans votre flux de travail pour donner à vos équipes de développement, d'exploitation et de direction l'occasion d'examiner vos modifications avant qu'elles ne soient déployées auprès d'un public plus large.

Pour plus d'informations sur les exécutions de flux de travail, consultez[Exécution d'un flux de travail](workflows-working-runs.md).

**Topics**
+ [Comment déverrouiller une porte d'approbation ?](#workflows-approval-conditions)
+ [Quand utiliser le portail « Approbation »](#workflows-approval-when)
+ [Qui peut fournir une approbation ?](#workflows-approval-who)
+ [Comment informer les utilisateurs qu'une approbation est requise ?](#workflows-approval-notify-methods)
+ [Puis-je utiliser une porte « d'approbation » pour empêcher le démarrage d'un flux de travail ?](#workflows-approval-prevent)
+ [Comment fonctionnent les approbations de flux de travail avec les modes d'exécution en file d'attente, remplacé et parallèle ?](#workflows-approval-run-mode)
+ [Exemple : une porte « d'approbation »](workflows-approval-example.md)
+ [Ajouter une porte « d'approbation »](workflows-approval-add.md)
+ [Configuration des notifications d'approbation](workflows-approval-notify.md)
+ [Approuver ou rejeter l'exécution d'un flux de travail](workflows-approval-approve.md)
+ [Porte « d'approbation » YAML](approval-ref.md)

## Comment déverrouiller une porte d'approbation ?
<a name="workflows-approval-conditions"></a>

Pour déverrouiller une porte **d'approbation**, *toutes les* conditions suivantes doivent être remplies :
+ **Condition 1** : Le nombre requis d'approbations doit être soumis. Le nombre d'approbations requis est configurable et chaque utilisateur est autorisé à soumettre une seule approbation.
+ **Condition 2** : Toutes les approbations doivent être soumises avant l'expiration de la porte. Le portail expire 14 jours après son activation. Cette période n'est pas configurable.
+ **Condition 3** : Personne ne doit rejeter l'exécution du flux de travail. Un seul rejet entraînera l'échec de l'exécution du flux de travail.
+ **Condition 4** : (Ne s'applique que si vous utilisez le mode d'exécution remplacé.) L'exécution ne doit pas être remplacée par une exécution ultérieure. Pour de plus amples informations, veuillez consulter [Comment fonctionnent les approbations de flux de travail avec les modes d'exécution en file d'attente, remplacé et parallèle ?](#workflows-approval-run-mode).

Si l'une des conditions n'est pas remplie, CodeCatalyst arrête le flux de travail et définit le statut d'exécution sur **Échec** (dans le cas des **conditions 1** à **3**) ou sur **Remplacé** (dans le cas de la **condition 4**).

## Quand utiliser le portail « Approbation »
<a name="workflows-approval-when"></a>

Généralement, vous utiliserez une porte d'**approbation** dans un flux de travail qui déploie des applications et d'autres ressources sur un serveur de production ou tout environnement dans lequel les normes de qualité doivent être validées. En plaçant la porte avant le déploiement en production, vous permettez aux réviseurs de valider votre nouvelle révision logicielle avant qu'elle ne soit mise à la disposition du public. 

## Qui peut fournir une approbation ?
<a name="workflows-approval-who"></a>

Tout utilisateur membre de votre projet et ayant le rôle de **contributeur** ou d'**administrateur de projet** peut fournir une approbation. Les utilisateurs dotés du rôle d'**administrateur de l'espace** qui appartiennent à l'espace de votre projet peuvent également fournir une approbation.

**Note**  
Les utilisateurs dotés du rôle de **réviseur** ne peuvent pas fournir d'approbations.

## Comment informer les utilisateurs qu'une approbation est requise ?
<a name="workflows-approval-notify-methods"></a>

Pour informer les utilisateurs qu'une approbation est requise, vous devez :
+  CodeCatalyst Demandez-leur de leur envoyer une notification Slack. Pour de plus amples informations, veuillez consulter [Configuration des notifications d'approbation](workflows-approval-notify.md).
+ Accédez à la page de la CodeCatalyst console où se trouvent les boutons **Approuver** et **Rejeter**, puis collez l'URL de cette page dans un e-mail ou une application de messagerie adressée aux approbateurs. Pour plus d'informations sur la manière d'accéder à cette page, consultez[Approuver ou rejeter l'exécution d'un flux de travail](workflows-approval-approve.md).

## Puis-je utiliser une porte « d'approbation » pour empêcher le démarrage d'un flux de travail ?
<a name="workflows-approval-prevent"></a>

Oui, avec des qualifications. Pour de plus amples informations, veuillez consulter [Puis-je utiliser une porte pour empêcher le démarrage d'un flux de travail ?](workflows-gates.md#workflows-gates-prevent).

## Comment fonctionnent les approbations de flux de travail avec les modes d'exécution en file d'attente, remplacé et parallèle ?
<a name="workflows-approval-run-mode"></a>

[Lorsque vous utilisez le mode d'exécution en file d'attente, remplacé ou parallèle, la porte d'**approbation** fonctionne de la même manière que les actions.](workflows-actions.md) Nous vous conseillons de lire les [À propos du mode d'exécution parallèle](workflows-configure-runs.md#workflows-configure-runs-parallel) sections [À propos du mode d'exécution en file d'attente](workflows-configure-runs.md#workflows-configure-runs-queued)[À propos du mode d'exécution remplacé](workflows-configure-runs.md#workflows-configure-runs-superseded),, pour vous familiariser avec ces modes d'exécution. Une fois que vous les aurez compris de base, revenez à cette section pour découvrir comment fonctionnent ces modes d'exécution lorsque la porte **d'approbation** est présente.

Lorsque la porte **d'approbation** est présente, les essais sont traités comme suit :
+ Si vous utilisez le [mode d'exécution en file](workflows-configure-runs.md#workflows-configure-runs-queued) d'attente, les exécutions seront placées en file d'attente après l'exécution en attente d'approbation à la porte. Lorsque cette porte est déverrouillée (c'est-à-dire que toutes les approbations ont été données), le prochain passage de la file d'attente passe à la porte et attend les approbations. Ce processus se poursuit avec le traitement des essais en file d'attente via le portail. one-by-one [Figure 1](#figure-1-workflow-queued-run-mode-ma)illustre ce processus.
+ Si vous utilisez le mode d'[exécution remplacé, le comportement est le même que celui du mode](workflows-configure-runs.md#workflows-configure-runs-superseded) d'exécution en file d'attente, sauf qu'au lieu de laisser les essais s'accumuler dans la file d'attente à la porte, les nouveaux essais remplacent (prennent le relais) des essais précédents. Il n'y a pas de file d'attente, et toute course actuellement en attente d'approbation sera annulée et remplacée par une course plus récente. [Figure 2](#figure-2-workflow-superseded-run-mode-ma)illustre ce processus.
+ Si vous utilisez le [mode d'exécution parallèle](workflows-configure-runs.md#workflows-configure-runs-parallel), les exécutions démarrent en parallèle et aucune file d'attente ne se forme. Chaque course est traitée immédiatement par la porte puisqu'il n'y a aucune course devant elle. [Figure 3](#figure-3-workflow-parallel-run-mode-ma)illustre ce processus.

**Figure 1** **: « Mode d'exécution en file d'attente » et porte d'approbation**

![\[Comment fonctionne une porte « d'approbation » avec le « mode d'exécution en file d'attente »\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/flows/runmode-queued-ma.png)


**Figure 2** **: « Mode d'exécution remplacé » et porte d'approbation**

![\[Comment fonctionne une porte « d'approbation » avec le « mode d'exécution remplacé »\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/flows/runmode-superseded-ma.png)


**Figure 3** **: « Mode d'exécution parallèle » et porte d'approbation**

![\[Comment fonctionne une porte « d'approbation » avec le « mode de fonctionnement parallèle »\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/flows/runmode-parallel-ma.png)


# Exemple : une porte « d'approbation »
<a name="workflows-approval-example"></a>

L'exemple suivant montre comment ajouter une porte **d'approbation** appelée `Approval_01` entre deux actions appelées`Staging`, et`Production`. L'`Staging`action s'exécute en premier, la `Approval_01` porte en second et l'`Production`action en dernier. L'`Production`action ne s'exécute que si le `Approval_01` portail est déverrouillé. La `DependsOn` propriété garantit que les `Production` phases `Staging``Approval_01`, et s'exécutent dans un ordre séquentiel.

Pour plus d'informations sur la porte **d'approbation**, consultez[Exiger des approbations lors des exécutions de flux](workflows-approval.md).

```
Actions:
  Staging: # Deploy to a staging server
    Identifier: aws/ecs-deploy@v1
    Configuration:
    ...       
  Approval_01:
    Identifier: aws/approval@v1
    DependsOn:
      - Staging
    Configuration:
      ApprovalsRequired: 2 
  Production: # Deploy to a production server
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - Approval_01
    Configuration:
    ...
```

# Ajouter une porte « d'approbation »
<a name="workflows-approval-add"></a>

Pour configurer votre flux de travail afin d'exiger une approbation, vous devez ajouter la porte **d'approbation** au flux de travail. Suivez les instructions ci-dessous pour ajouter une porte d'**approbation** à votre flux de travail.

Pour plus d'informations sur cette porte, consultez[Exiger des approbations lors des exécutions de flux](workflows-approval.md).

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**Pour ajouter une porte « d'approbation » à un flux de travail (éditeur visuel)**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. En haut à gauche, choisissez **Gates**.

1. Dans le catalogue **Gates**, dans **Approbation**, choisissez le signe plus (**\$1**).

1. Choisissez **Entrées**, puis dans le champ **Dépend** de, procédez comme suit.

   Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette porte s'exécute. Par défaut, lorsque vous ajoutez une porte à un flux de travail, la porte est définie pour dépendre de la dernière action de votre flux de travail. Si vous supprimez cette propriété, la porte ne dépendra de rien et s'exécutera en premier, avant les autres actions.
**Note**  
Une porte doit être configurée pour s'exécuter avant ou après une action, un groupe d'actions ou une porte. Il ne peut pas être configuré pour fonctionner en parallèle avec d'autres actions, groupes d'actions et portes.

   Pour plus d'informations sur la fonctionnalité **Depends on**, consultez[Séquençage des portes et des actions](workflows-gates-depends-on.md).

1. Cliquez sur l’onglet **Configuration**.

1. Dans le champ **Nom de la porte**, procédez comme suit.

   Spécifiez le nom que vous souhaitez donner à la porte. Tous les noms de portes doivent être uniques dans le flux de travail. Les noms de portes sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux traits d'union (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms de portes.

1. (Facultatif) Dans le champ **Nombre d'approbations**, procédez comme suit.

   Spécifiez le nombre minimum d'approbations requises pour déverrouiller la porte **d'approbation**. Le minimum est`1`. Le maximum est de`2`. En cas d'omission, la valeur par défaut est`1`.
**Note**  
Si vous souhaitez omettre cette `ApprovalsRequired` propriété, supprimez la `Configuration` section de la porte du fichier de définition du flux de travail.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour ajouter une porte « d'approbation » à un flux de travail (éditeur YAML)**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. Ajoutez une `Approval` section et les propriétés sous-jacentes en utilisant l'exemple suivant comme guide. Pour en savoir plus, consultez [Porte « d'approbation » YAML](approval-ref.md) dans la rubrique [Définition du flux de travail YAML](workflow-reference.md).

   ```
   Actions:
     MyApproval_01:
       Identifier: aws/approval@v1
       DependsOn:
         - PreviousAction
       Configuration:
         ApprovalsRequired: 2
   ```

   Pour obtenir un autre exemple, consultez [Exemple : une porte « d'approbation »](workflows-approval-example.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

# Configuration des notifications d'approbation
<a name="workflows-approval-notify"></a>

Vous pouvez CodeCatalyst envoyer une notification à une chaîne Slack pour informer les utilisateurs qu'un flux de travail nécessite une approbation. Les utilisateurs voient la notification et cliquent sur le lien qu'elle contient. Le lien les dirige vers une page d' CodeCatalyst approbation où ils peuvent approuver ou rejeter le flux de travail.

Vous pouvez également configurer des notifications pour informer les utilisateurs qu'un flux de travail a été approuvé, rejeté ou que la demande d'approbation a expiré.

Suivez les instructions ci-dessous pour configurer les notifications Slack.

**Avant de commencer**  
Assurez-vous d'avoir ajouté une porte d'**approbation** à votre flux de travail. Pour de plus amples informations, veuillez consulter [Ajouter une porte « d'approbation »](workflows-approval-add.md).

**Pour envoyer des notifications d'approbation de flux de travail à une chaîne Slack**

1. Configurez CodeCatalyst avec Slack. Pour de plus amples informations, veuillez consulter [Commencer à utiliser les notifications Slack](getting-started-notifications.md).

1. Dans le CodeCatalyst projet contenant le flux de travail qui nécessite une approbation, activez les notifications, si elles ne le sont pas déjà. Pour activer les notifications :

   1. Accédez à votre projet et dans le volet de navigation, sélectionnez **Paramètres du projet**.

   1. En haut de la page, choisissez **Notifications**.

   1. Dans **Événements de notification**, choisissez **Modifier les notifications**.

   1. Activez l'option « **En attente d'approbation du flux** de travail » et choisissez une chaîne Slack sur laquelle CodeCatalyst vous enverrez la notification. 

   1. (Facultatif) Activez des notifications supplémentaires pour avertir les utilisateurs des approbations approuvées, rejetées ou expirées. Vous pouvez activer l'exécution du **flux de travail approuvée, l'exécution** du **flux de travail rejetée**, **l'approbation du flux de travail remplacée** et l'**approbation du flux de travail expirée.** À côté de chaque notification, choisissez le canal Slack sur lequel CodeCatalyst vous souhaitez envoyer la notification.

   1. Choisissez **Save** (Enregistrer).

# Approuver ou rejeter l'exécution d'un flux de travail
<a name="workflows-approval-approve"></a>

Les exécutions de flux de travail qui incluent la porte d'**approbation** devront être approuvées ou rejetées. Les utilisateurs peuvent fournir leur approbation ou leur rejet à partir de :
+ la CodeCatalyst console
+ un lien fourni par un membre de l'équipe
+ une notification automatique sur Slack

Une fois qu'un utilisateur a donné son approbation ou son rejet, cette décision ne peut pas être annulée.

**Note**  
Seuls certains utilisateurs peuvent approuver ou rejeter l'exécution d'un flux de travail. Pour de plus amples informations, veuillez consulter [Qui peut fournir une approbation ?](workflows-approval.md#workflows-approval-who).

**Avant de commencer**  
Assurez-vous d'avoir ajouté une porte d'**approbation** à votre flux de travail. Pour de plus amples informations, veuillez consulter [Ajouter une porte « d'approbation »](workflows-approval-add.md).

**Pour approuver ou rejeter un flux de travail exécuté à partir de la CodeCatalyst console**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Dans le diagramme du flux de travail, sélectionnez la case représentant la porte **d'approbation**.

   Un panneau latéral apparaît.
**Note**  
À ce stade, vous pouvez envoyer l'URL de cette page à d'autres approbateurs si vous le souhaitez.

1. Sous **Révision de la décision**, choisissez **Approuver** ou **Rejeter**.

1. (Facultatif) Dans **Commentaire - facultatif**, entrez un commentaire indiquant pourquoi vous avez approuvé ou rejeté l'exécution du flux de travail.

1. Sélectionnez **Soumettre**.

**Pour approuver ou rejeter l'exécution d'un flux de travail à partir d'un lien fourni par un membre de l'équipe**

1. Choisissez le lien qui vous a été envoyé par le membre de votre équipe. (Vous pouvez demander au membre de votre équipe de lire la procédure précédente pour obtenir le lien.)

1. Connectez-vous à CodeCatalyst, si vous y êtes invité.

   Vous êtes redirigé vers la page d'approbation de l'exécution du flux de travail.

1. Sous **Révision de la décision**, choisissez **Approuver** ou **Rejeter**.

1. (Facultatif) Dans **Commentaire - facultatif**, entrez un commentaire indiquant pourquoi vous avez approuvé ou rejeté l'exécution du flux de travail.

1. Sélectionnez **Soumettre**.

**Pour approuver ou rejeter l'exécution d'un flux de travail à partir d'une notification automatique de Slack**

1. Assurez-vous que les notifications Slack sont configurées. Consultez [Configuration des notifications d'approbation](workflows-approval-notify.md).

1. Dans Slack, dans le canal auquel la notification d'approbation a été envoyée, choisissez le lien dans la notification d'approbation.

1. Connectez-vous à CodeCatalyst, si vous y êtes invité.

   Vous êtes redirigé vers la page d'exécution du flux de travail.

1. Dans le diagramme du flux de travail, choisissez la porte d'approbation.

1. Sous **Révision de la décision**, choisissez **Approuver** ou **Rejeter**.

1. (Facultatif) Dans **Commentaire - facultatif**, entrez un commentaire indiquant pourquoi vous avez approuvé ou rejeté l'exécution du flux de travail.

1. Sélectionnez **Soumettre**.

# Porte « d'approbation » YAML
<a name="approval-ref"></a>

Voici la définition YAML de la porte d'**approbation**. Pour savoir comment utiliser cette porte, voir[Exiger des approbations lors des exécutions de flux](workflows-approval.md).

Cette définition d'action existe sous forme de section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:
 
# The 'Approval' gate definition starts here.    
  Approval: 
    Identifier: aws/approval@v1
    DependsOn:
      - another-action
    Configuration:
      ApprovalsRequired: number
```

## Approval
<a name="approval.name"></a>

(Obligatoire)

Spécifiez le nom que vous souhaitez donner à la porte. Tous les noms de portes doivent être uniques dans le flux de travail. Les noms de portes sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux traits d'union (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms de portes.

Par défaut : `Approval_nn`.

Interface utilisateur correspondante : onglet Configuration/nom de **la porte**

## Identifier
<a name="approval.identifier"></a>

(*Approval*/**Identifier**)

(Obligatoire)

Identifie le portail. La porte **d'approbation** prend en charge la version`1.0.0`. Ne modifiez pas cette propriété, sauf si vous souhaitez raccourcir la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

Par défaut : `aws/approval@v1`.

**Interface utilisateur correspondante : diagramme de flux de travail/ Approval \$1nn/ aws/approval @v1 label**

## DependsOn
<a name="approval.dependson"></a>

(*Approval*/**DependsOn**)

(Facultatif)

Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette porte s'exécute. Par défaut, lorsque vous ajoutez une porte à un flux de travail, la porte est définie pour dépendre de la dernière action de votre flux de travail. Si vous supprimez cette propriété, la porte ne dépendra de rien et s'exécutera en premier, avant les autres actions.

**Note**  
Une porte doit être configurée pour s'exécuter avant ou après une action, un groupe d'actions ou une porte. Il ne peut pas être configuré pour fonctionner en parallèle avec d'autres actions, groupes d'actions et portes.

Pour plus d'informations sur la fonctionnalité **Depends on**, consultez[Séquençage des portes et des actions](workflows-gates-depends-on.md).

Interface utilisateur correspondante : onglet **Entrées/dépend de**

## Configuration
<a name="approval.configuration"></a>

(*Approval*/**Configuration**)

(Facultatif)

Section dans laquelle vous pouvez définir les propriétés de configuration de la porte.

Interface utilisateur correspondante : onglet **Configuration**

## ApprovalsRequired
<a name="approval.approvals.required"></a>

(*Approval*/Configuration/**ApprovalsRequired**)

(Facultatif)

Spécifiez le nombre minimum d'approbations requises pour déverrouiller la porte **d'approbation**. Le minimum est`1`. Le maximum est de`2`. En cas d'omission, la valeur par défaut est`1`.

**Note**  
Si vous souhaitez omettre cette `ApprovalsRequired` propriété, supprimez la `Configuration` section de la porte du fichier de définition du flux de travail.

Interface utilisateur correspondante : onglet **Configuration/Nombre d'approbations**