

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.

# Configuration d'une nouvelle tentative d'étape en cas d'échec d'une étape ou d'actions ayant échoué
<a name="stage-retry"></a>

Vous pouvez réessayer une étape qui a échoué sans avoir à réexécuter un pipeline depuis le début. Pour ce faire, réessayez les actions qui ont échoué dans une étape ou réessayez toutes les actions de l'étape en commençant par la première action de la phase. Lorsque vous réessayez les actions ayant échoué dans une étape, toutes les actions toujours en cours continuent de fonctionner et les actions qui ont échoué sont à nouveau déclenchées. Lorsque vous réessayez une étape qui a échoué depuis la première action de l'étape, aucune action ne peut être en cours dans l'étape. Avant qu'une étape puisse être réessayée, toutes les actions doivent avoir échoué ou certaines actions ont échoué et d'autres ont réussi.

**Important**  
Réessayer une étape échouée réessaie toutes les actions de l'étape depuis la première action de l'étape, et réessayer les actions échouées réessaie toutes les actions échouées de l'étape. Cela remplace les artefacts de sortie d'actions précédemment réussies au cours de la même exécution.   
Bien que les artefacts puissent être remplacés, l'historique d'exécution des actions précédemment réussies est conservé.

Si vous utilisez la console pour consulter un pipeline, un bouton **Réessayer l'étape** ou Réessayer les **actions ayant échoué apparaît sur le stage et peut être réessayé**.

Si vous utilisez la AWS CLI, vous pouvez utiliser la **get-pipeline-state** commande pour déterminer si des actions ont échoué.

**Note**  
Dans les cas suivants, il se peut que vous ne puissiez pas réessayer une étape :  
Toutes les actions de l'étape ont réussi, de sorte que l'étape n'est pas en état d'échec.
La structure globale du pipeline a changé après l'échec de l'étape.
Une autre tentative est déjà en cours dans l'étape.

**Topics**
+ [Considérations relatives à la nouvelle tentative](#stage-retry-considerations)
+ [Réessayer manuellement une étape qui a échoué](#stage-retry-manual)
+ [Configuration d'une étape pour une nouvelle tentative automatique en cas d'échec](#stage-retry-auto)

## Considérations relatives à la nouvelle tentative
<a name="stage-retry-considerations"></a>

Les considérations relatives à la nouvelle tentative d'étape sont les suivantes :
+ Vous ne pouvez configurer une nouvelle tentative automatique en cas d'échec de l'étape que pour une seule tentative.
+ Vous pouvez configurer une nouvelle tentative automatique en cas d'échec de l'étape pour toutes les actions, y compris les `Source` actions.

## Réessayer manuellement une étape qui a échoué
<a name="stage-retry-manual"></a>

Vous pouvez réessayer manuellement une étape ayant échoué à l'aide de la console ou de la CLI.

Vous pouvez également configurer une étape pour réessayer automatiquement en cas d'échec, comme indiqué dans[Configuration d'une étape pour une nouvelle tentative automatique en cas d'échec](#stage-retry-auto). 

### Réessayer manuellement une étape qui a échoué (console)
<a name="stage-retry-console"></a><a name="proc-stage-retry-console"></a>

**Pour réessayer une étape qui a échoué ou des actions ayant échoué dans une étape, console**

1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'[adresse http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Les noms de tous les pipelines associés à votre AWS compte sont affichés.

1.  Dans **Name**, choisissez le nom du pipeline. 

1. Localisez l'étape où l'action a échoué, puis choisissez l'une des options suivantes :
   + Pour réessayer toutes les actions de l'étape, choisissez **Réessayer** l'étape.
   + Pour réessayer uniquement les actions ayant échoué au cours de l'étape, choisissez **Réessayer les actions ayant échoué**.   
![Exemple de pipeline avec une étape CodeCommit source et une étape de CodeDeploy déploiement ayant échoué](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/retry-failed-stage.png)

   Si toutes les actions retentées dans l'étape aboutissent avec succès, le pipeline continue de s'exécuter.

### Réessayer manuellement une étape ayant échoué (CLI)
<a name="stage-retry-cli"></a>

**Pour réessayer une étape ayant échoué ou des actions ayant échoué dans une étape - CLI**

Pour AWS CLI réessayer toutes les actions ou toutes les actions ayant échoué, vous devez exécuter la **retry-stage-execution** commande avec les paramètres suivants : 

```
--pipeline-name <value>
--stage-name <value>
--pipeline-execution-id <value>
--retry-mode ALL_ACTIONS/FAILED_ACTIONS
```
**Note**  
Les valeurs que vous pouvez utiliser pour `retry-mode` sont `FAILED_ACTIONS` et`ALL_ACTIONS`.

1. Sur un terminal (Linux, macOS ou Unix) ou une invite de commande (Windows), exécutez la [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)commande, comme indiqué dans l'exemple suivant pour un pipeline nommé`MyPipeline`.

   ```
   aws codepipeline retry-stage-execution --pipeline-name MyPipeline --stage-name Deploy --pipeline-execution-id b59babff-5f34-EXAMPLE --retry-mode FAILED_ACTIONS
   ```

   La sortie renvoie l'ID d'exécution :

   ```
   {
       "pipelineExecutionId": "b59babff-5f34-EXAMPLE"
   }
   ```

1. Vous pouvez également exécuter la commande avec un fichier d'entrée JSON. Vous devez d'abord créer un fichier JSON identifiant le pipeline, l'étape contenant les actions ayant échoué et la dernière exécution du pipeline dans cette étape. Exécutez la commande **retry-stage-execution** avec le paramètre `--cli-input-json`. Pour récupérer les informations dont vous avez besoin pour le fichier JSON, le plus simple est d'utiliser la commande **get-pipeline-state**.

   1. À partir d'un terminal (Linux, macOS ou Unix) ou d'une invite de commande (Windows), exécutez la [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)commande sur un pipeline. Par exemple, pour un pipeline nommé MyFirstPipeline, vous devez taper quelque chose de similaire à ce qui suit :

      ```
      aws codepipeline get-pipeline-state --name {{MyFirstPipeline}}
      ```

      La réponse à la commande inclut des informations sur l'état du pipeline pour chaque étape. Dans l'exemple suivant, la réponse indique qu'une ou plusieurs actions a/ont échoué lors de l'étape Intermédiaire :

      ```
      {
          "updated": 1427245911.525,
          "created": 1427245911.525,
          "pipelineVersion": 1,
          "pipelineName": "MyFirstPipeline",
          "stageStates": [
              {
                  "actionStates": [...],
                  "stageName": "Source",
                  "latestExecution": {
                      "pipelineExecutionId": "9811f7cb-7cf7-SUCCESS",
                      "status": "Succeeded"
                  }
              },
              {{{
                  "actionStates": [...],
                  "stageName": "Staging",
                  "latestExecution": {
                      "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE",
                      "status": "Failed"
                  }}}
              }
          ]
      }
      ```

   1. Dans un éditeur de texte brut, créez un fichier où vous enregistrerez ce qui suit, au format JSON :
      + Le nom du pipeline qui contient les actions ayant échoué
      + Le nom de l'étape qui contient les actions ayant échoué
      + L'identifiant de la dernière exécution du pipeline dans l'étape
      + Le mode de nouvelle tentative.

      Dans l' MyFirstPipeline exemple précédent, votre fichier ressemblerait à ceci :

      ```
      {
          "pipelineName": "MyFirstPipeline",
          "stageName": "Staging",
          "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE",
          "retryMode": "FAILED_ACTIONS"
      }
      ```

   1. Enregistrez le fichier avec un nom tel que **retry-failed-actions.json**.

   1. Utilisez le fichier que vous avez créé lorsque vous avez exécuté la commande [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html). Par exemple :
**Important**  
N'oubliez pas d'inclure `file://` devant le nom du fichier. Il est nécessaire dans cette commande.

      ```
      aws codepipeline retry-stage-execution --cli-input-json file://retry-failed-actions.json
      ```

   1. Pour afficher les résultats de la nouvelle tentative, ouvrez la CodePipeline console et choisissez le pipeline contenant les actions qui ont échoué, ou réutilisez la **get-pipeline-state** commande. Pour de plus amples informations, veuillez consulter [Afficher les pipelines et les détails dans CodePipeline](pipelines-view.md). 

## Configuration d'une étape pour une nouvelle tentative automatique en cas d'échec
<a name="stage-retry-auto"></a>

Vous pouvez configurer une étape pour une nouvelle tentative automatique en cas d'échec. L'étape effectuera une nouvelle tentative et affichera l'état de la nouvelle tentative sur la page **Afficher** le pipeline pour indiquer si l'étape a échoué.

Vous pouvez configurer le mode de nouvelle tentative en spécifiant que l'étape doit automatiquement réessayer soit toutes les actions de l'étape ayant échoué, soit uniquement les actions ayant échoué de l'étape.

### Configuration d'une étape pour une nouvelle tentative automatique en cas d'échec (console)
<a name="stage-retry-auto-console"></a>

Vous pouvez utiliser la console pour configurer une étape pour une nouvelle tentative automatique.

**Configuration d'une étape pour une nouvelle tentative automatique (console)**

1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'[adresse http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Les noms et le statut de tous les pipelines associés à votre AWS compte sont affichés. 

1. Dans **Name**, choisissez le nom du pipeline que vous souhaitez modifier.

1. Sur la page des détails du pipeline, choisissez **Edit**.

1. Sur la page **Modifier**, pour l'action que vous souhaitez modifier, choisissez **Modifier l'étape**.

1. Choisissez **Configuration automatique de l'étape :**, puis sélectionnez **Activer la nouvelle tentative automatique en cas d'échec de l'étape**. Enregistrez les modifications apportées à votre pipeline.

1. Dans **Configuration automatique de l'étape :**, choisissez l'un des modes de nouvelle tentative suivants :
   + Pour spécifier que le mode réessaiera toutes les actions de l'étape, choisissez **Réessayer l'étape ayant échoué**.
   + Pour spécifier que le mode réessaiera uniquement les actions ayant échoué au cours de l'étape, choisissez **Réessayer les actions ayant échoué**.

   Enregistrez les modifications apportées à votre pipeline.  
![Exemple d'écran d'édition pour configurer une nouvelle tentative automatique en cas d'échec de l'étape dans CodePipeline.](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/retry-configure.png)

1. Une fois votre pipeline exécuté, en cas d'échec de l'étape, une nouvelle tentative automatique sera effectuée. Les exemples suivants montrent une phase de construction qui a été réessayée automatiquement.  
![Exemple de pipeline dont l'étape a échoué et qui a été réessayée une fois.](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/stage-auto-retry-example.png)

1. Pour afficher les détails de la nouvelle tentative, choisissez. La fenêtre s'affiche.  
![Exemple de fenêtre de métadonnées de l'étape de réessai indiquant qu'il y a eu une tentative.](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/retry-stage-metadata.png)

### Configuration d'une étape pour une nouvelle tentative automatique (CLI)
<a name="stage-retry-auto-cli"></a>

Pour configurer une étape AWS CLI afin de réessayer automatiquement en cas d'échec, utilisez les commandes pour créer ou mettre à jour un pipeline, comme indiqué dans [Création d'un pipeline, d'étapes et d'actions](pipelines-create.md) et[Modifier un pipeline dans CodePipeline](pipelines-edit.md).
+ Ouvrez un terminal (Linux, macOS ou Unix) ou une invite de commande (Windows) et utilisez le AWS CLI pour exécuter la `update-pipeline` commande, en spécifiant la condition de défaillance dans la structure du pipeline. L'exemple suivant configure une nouvelle tentative automatique pour un stage nommé : `S3Deploy` 

  ```
  {
                  "name": "S3Deploy",
                  "actions": [
                      {
                          "name": "s3deployaction",
                          "actionTypeId": {
                              "category": "Deploy",
                              "owner": "AWS",
                              "provider": "S3",
                              "version": "1"
                          },
                          "runOrder": 1,
                          "configuration": {
                              "BucketName": "static-website-bucket",
                              "Extract": "false",
                              "ObjectKey": "SampleApp.zip"
                          },
                          "outputArtifacts": [],
                          "inputArtifacts": [
                              {
                                  "name": "SourceArtifact"
                              }
                          ],
                          "region": "us-east-1"
                      }
                  ],
                   "onFailure": {
                      "result": "RETRY",
                      "retryConfiguration": {
                          "retryMode": "ALL_ACTIONS",
                      },
              }
  ```

### Configurer une étape pour une nouvelle tentative automatique ()CloudFormation
<a name="stage-retry-auto-cfn"></a>

Pour configurer une étape pour une nouvelle tentative automatique en cas d'échec, utilisez le paramètre de cycle de vie de l'`OnFailure`étape. CloudFormation Utilisez le `RetryConfiguration` paramètre pour configurer le mode de nouvelle tentative.

```
OnFailure:
     Result: RETRY
     RetryConfiguration: 
         RetryMode: ALL_ACTIONS
```
+ Mettez à jour le modèle comme indiqué dans l'extrait suivant. L'exemple suivant configure une nouvelle tentative automatique pour une étape nommée : `Release`

  ```
  AppPipeline: 
    Type: AWS::CodePipeline::Pipeline 
    Properties: 
      RoleArn:
        Ref: CodePipelineServiceRole 
      Stages: 
        - 
          Name: Source 
          Actions: 
            - 
              Name: SourceAction
              ActionTypeId: 
                Category: Source 
                Owner: AWS 
                Version: 1 
                Provider: S3 
              OutputArtifacts: 
                - 
                  Name: SourceOutput 
              Configuration: 
                S3Bucket: 
                  Ref: SourceS3Bucket 
                S3ObjectKey: 
                  Ref: SourceS3ObjectKey 
              RunOrder: 1  
        - 
          Name: Release 
          Actions: 
            - 
              Name: ReleaseAction
              InputArtifacts: 
                - 
                  Name: SourceOutput 
              ActionTypeId: 
                Category: Deploy 
                Owner: AWS 
                Version: 1
                Provider: CodeDeploy 
              Configuration: 
                ApplicationName: 
                  Ref: ApplicationName
                DeploymentGroupName: 
                  Ref: DeploymentGroupName 
              RunOrder: 1   
         OnFailure:
             Result: RETRY
             RetryConfiguration: 
                RetryMode: ALL_ACTIONS
      ArtifactStore: 
        Type: S3 
        Location:
          Ref: ArtifactStoreS3Location 
        EncryptionKey:
          Id: arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID
          Type: KMS
      DisableInboundStageTransitions: 
        - 
          StageName: Release 
          Reason: "Disabling the transition until integration tests are completed"
      Tags:
        - Key: Project
          Value: ProjectA
        - Key: IsContainerBased
          Value: 'true'
  ```

  Pour plus d'informations sur la configuration d'une nouvelle tentative d'étape en cas d'échec, consultez [OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)le *Guide `StageDeclaration` de l'CloudFormation utilisateur ci-dessous*.