Repetir um estágio com falha ou ações com falha em um estágio - AWS CodePipeline

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

Repetir um estágio com falha ou ações com falha em um estágio

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.

Repetir um estágio com falha (console)

Para repetir um estágio com falha ou ações com falha em um estágio - console
  1. Faça login no AWS Management Console e abra o CodePipeline console em http://console.aws.amazon.com/codesuite/codepipeline/home.

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

  2. Em Nome, selecione o nome do pipeline.

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

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

Repetir um estágio com falha (CLI)

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 retry-stage-execution, 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" }
  2. 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 get-pipeline-state 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" } } ] }
    2. 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" }
    3. Salve o arquivo com um nome como retry-failed-actions.json.

    4. Invoque o arquivo que você criou quando executou o comando retry-stage-execution. 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
    5. 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 ter mais informações, consulte Veja os pipelines e os detalhes em CodePipeline.