

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar a repetição do estágio para um estágio com falha ou ações com falha
<a name="stage-retry"></a>

Você pode tentar novamente um estágio com falha sem precisar executar novamente um pipeline desde o início. Você faz isso repetindo as ações que falharam em um estágio ou repetindo todas as ações do estágio desde a primeira ação. Quando você repete as ações com falha em um estágio, todas as ações que ainda estão em andamento continuam funcionando, e as ações com falha são acionadas novamente. Quando você repete um estágio com falha desde a primeira ação do estágio, o estágio não pode ter nenhuma ação em andamento. Para que um estágio possa ser repetido, é necessário que todas as ações tenham falhado ou que algumas ações tenham falhado e algumas tenham sido bem-sucedidas.

**Importante**  
A repetição de um estágio com falha repete todas as ações do estágio desde a primeira ação, e a repetição das ações com falha repete todas as ações com falha do estágio. Isso substitui os artefatos de saída de ações anteriormente bem-sucedidas na mesma execução.   
Embora os artefatos possam ser substituídos, o histórico de execução das ações anteriormente bem-sucedidas ainda é mantido.

Se você estiver usando o console para visualizar um pipeline, o botão **Tentar a etapa novamente** ou **Repetir ações com falha** será exibido no estágio que pode ser repetido.

Se você estiver usando a AWS CLI, poderá usar o **get-pipeline-state** comando para determinar se alguma ação falhou.

**nota**  
Nos casos a seguir, talvez não seja possível repetir um estágio:  
Todas as ações no estágio foram bem-sucedidas. Portanto, o estágio não está em um status de falha.
A estrutura geral do pipeline foi alterada após a falha do estágio.
Outra tentativa no estágio já está em andamento.

**Topics**
+ [Considerações para repetição de estágio](#stage-retry-considerations)
+ [Repetir manualmente um estágio com falha](#stage-retry-manual)
+ [Configurar a repetição automática em caso de falha para um estágio](#stage-retry-auto)

## Considerações para repetição de estágio
<a name="stage-retry-considerations"></a>

As considerações para a repetição de estágio são as seguintes:
+ Você só pode configurar a repetição automática em caso de falha de estágio para uma tentativa de repetição.
+ Você pode configurar a repetição automática em caso de falha de estágio para todas as ações, incluindo ações `Source`.

## Repetir manualmente um estágio com falha
<a name="stage-retry-manual"></a>

Você pode repetir manualmente um estágio com falha usando o console ou a CLI.

Você também pode configurar um estágio para repetir automaticamente em caso de falha, conforme detalhado em [Configurar a repetição automática em caso de falha para um estágio](#stage-retry-auto). 

### Repetir manualmente um estágio com falha (console)
<a name="stage-retry-console"></a><a name="proc-stage-retry-console"></a>

**Para repetir um estágio com falha ou ações com falha em um estágio - console**

1. Faça login no Console de gerenciamento da AWS e abra o CodePipeline console em [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Os nomes de todos os pipelines associados à sua AWS conta são exibidos.

1.  Em **Nome**, selecione o nome do pipeline. 

1. Localize o estágio com a ação com falha e escolha uma das seguintes alternativas:
   + Para repetir todas as ações no estágio, escolha **Tentar a etapa novamente**.
   + Para repetir somente as ações com falha no estágio, escolha **Repetir ações com falha**.   
![Um exemplo de pipeline com um estágio CodeCommit de origem e um estágio de CodeDeploy implantação com falha](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/images/retry-failed-stage.png)

   Se todas as ações repetidas no estágio são concluídas com êxito, o pipeline continuará a ser executado.

### Repetir manualmente um estágio com falha (CLI)
<a name="stage-retry-cli"></a>

**Para repetir um estágio com falha ou ações com falha em um estágio (CLI)**

Para usar o AWS CLI para repetir todas as ações ou todas as ações com falha, execute o **retry-stage-execution** comando com os seguintes parâmetros: 

```
--pipeline-name <value>
--stage-name <value>
--pipeline-execution-id <value>
--retry-mode ALL_ACTIONS/FAILED_ACTIONS
```
**nota**  
Os valores que você pode usar para `retry-mode` são `FAILED_ACTIONS` e `ALL_ACTIONS`.

1. Em um terminal (Linux, macOS ou Unix) ou prompt de comando (Windows), execute o comando [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), conforme mostrado no exemplo a seguir para um pipeline chamado `MyPipeline`.

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

   A saída retorna o ID de execução:

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

1. Também é possível executar o comando com um arquivo de entrada JSON. Primeiro você deve criar um arquivo JSON que identifique o pipeline, o estágio que contém as ações com falha e a última execução do pipeline naquele estágio. Execute o comando **retry-stage-execution** com o parâmetro `--cli-input-json`. Para recuperar os detalhes necessários para o arquivo JSON, é mais fácil usar o comando **get-pipeline-state**.

   1. Em um terminal (Linux, macOS ou Unix) ou prompt de comando (Windows), execute o comando [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) em um pipeline. Por exemplo, para um pipeline chamado MyFirstPipeline, você digitaria algo semelhante ao seguinte:

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

      A resposta ao comando inclui informações do estado do pipeline para cada etapa. No exemplo a seguir, a resposta indica que uma ou mais ações falharam no estágio de Staging:

      ```
      {
          "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. Em um editor de texto plano, crie um arquivo para registrar o seguinte, no formato JSON:
      + O nome do pipeline que contém as ações com falha
      + O nome do estágio que contém as ações com falha
      + A ID da execução mais recente do pipeline no estágio
      + O modo de repetição.

      No MyFirstPipeline exemplo anterior, seu arquivo ficaria mais ou menos assim:

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

   1. Salve o arquivo com um nome como **retry-failed-actions.json**.

   1. Invoque o arquivo que você criou quando executou o comando [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). Por exemplo:
**Importante**  
Não se esqueça de incluir `file://` antes do nome de arquivo. Ele é obrigatório nesse comando.

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

   1. Para ver os resultados da tentativa de nova tentativa, abra o CodePipeline console e escolha o pipeline que contém as ações que falharam ou use o **get-pipeline-state** comando novamente. Para obter mais informações, consulte [Veja os pipelines e os detalhes em CodePipeline](pipelines-view.md). 

## Configurar a repetição automática em caso de falha para um estágio
<a name="stage-retry-auto"></a>

Você pode configurar a repetição automática em caso de falha para um estágio. O estágio repetirá e exibirá um status de repetição no estágio com falha na página **Exibir** do pipeline.

Você pode configurar o modo de repetição especificando que o estágio deve repetir automaticamente todas as ações no estágio com falha ou apenas as ações com falha no estágio.

### Configurar a repetição automática em caso de falha para um estágio (console)
<a name="stage-retry-auto-console"></a>

Você pode usar o console para configurar a repetição automática para um estágio.

**Configurar a repetição automática para um estágio (console)**

1. Faça login no Console de gerenciamento da AWS e abra o CodePipeline console em [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Os nomes e o status de todos os pipelines associados à sua AWS conta são exibidos. 

1. Em **Nome**, selecione o nome do pipeline que você deseja editar.

1. Na página de detalhes do pipeline, selecione **Editar**.

1. Na página **Editar**, para a ação que você deseja editar, escolha **Editar estágio**.

1. Selecione **Configuração de etapa automatizada:**, depois escolha **Habilitar nova tentativa automática em caso de falha na etapa**. Salve as alterações no pipeline.

1. Em **Configuração de etapa automatizada:**, selecione um dos seguintes modos de repetição:
   + Para especificar que o modo repetirá todas as ações no estágio, selecione **Repetir estágio com falha**.
   + Para especificar o modo de repetição voltado apenas às ações com falha no estágio, selecione **Repetir ações com falha**.

   Salve as alterações no pipeline.  
![Um exemplo de tela de edição para configurar a repetição automática em caso de falha de estágio em CodePipeline.](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/images/retry-configure.png)

1. Após a execução do pipeline, se ocorrer uma falha de estágio, a repetição automática será feita. Os exemplos a seguir mostram um estágio de compilação repetido automaticamente.  
![Um exemplo de pipeline com um estágio com falha que foi repetido uma vez.](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/images/stage-auto-retry-example.png)

1. Para ver detalhes sobre a nova repetição, selecione Visualizar detalhes. A janela é exibida.  
![Um exemplo da janela de metadados do estágio de repetição mostrando que houve uma tentativa.](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/images/retry-stage-metadata.png)

### Configurar a repetição automática para um estágio (CLI)
<a name="stage-retry-auto-cli"></a>

Para usar o AWS CLI para configurar um estágio para tentar novamente automaticamente em caso de falha, use os comandos para criar ou atualizar um pipeline conforme detalhado em [Criar um pipeline, estágios e ações](pipelines-create.md) e. [Editar um pipeline no CodePipeline](pipelines-edit.md)
+ Abra um terminal (Linux, macOS ou Unix) ou prompt de comando (Windows) e use o AWS CLI para executar o comando `update-pipeline`, especificando a condição de falha na estrutura do pipeline. O exemplo a seguir configura a repetição automática para um estágio chamado `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",
                      },
              }
  ```

### Configurar a repetição automática para um estágio (CloudFormation)
<a name="stage-retry-auto-cfn"></a>

Para configurar um estágio CloudFormation para repetição automática em caso de falha, use o parâmetro de ciclo de vida do `OnFailure` estágio. Use o parâmetro `RetryConfiguration` para configurar o modo de repetição.

```
OnFailure:
     Result: RETRY
     RetryConfiguration: 
         RetryMode: ALL_ACTIONS
```
+ Atualize o modelo conforme mostrado no snippet a seguir. O exemplo a seguir configura a repetição automática para um estágio chamado `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'
  ```

  Para obter mais informações sobre como configurar a repetição de estágio em caso de falha, consulte [OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)abaixo `StageDeclaration` no Guia do *CloudFormation usuário*.