Monitoramento de eventos do CodePipeline - AWS CodePipeline

Monitoramento de eventos do CodePipeline

Você pode monitorar eventos do CodePipeline no EventBridge, que fornece um fluxo de dados em tempo real de suas próprias aplicações, aplicações de software como serviço (SaaS) e Serviços da AWS. O EventBridge encaminha esses dados para destinos como o AWS Lambda e o Amazon Simple Notification Service. Esses eventos são iguais aos que aparecem no Amazon CloudWatch Events, que oferece um fluxo quase em tempo real de eventos do sistema que descrevem as alterações nos recursos da AWS. Para obter mais informações, consulte O que é o Amazon EventBridge? no Manual do usuário do Amazon EventBridge.

nota

O Amazon EventBridge é a maneira preferida de gerenciar seus eventos. O Amazon CloudWatch Events e o EventBridge são o mesmo serviço subjacente e API, mas o EventBridge oferece mais recursos. As alterações feitas no CloudWatch Events ou no EventBridge aparecerão em cada console.

Os eventos são compostos por regras. Uma regra é configurada escolhendo o seguinte:

  • Padrão de evento. Cada regra é expressa como um padrão de evento com a origem e o tipo de eventos a serem monitorados e os destinos do evento. Para monitorar eventos, você cria uma regra com o serviço que você está monitorando como origem do evento, como o CodePipeline. Por exemplo, você pode criar uma regra com um padrão de evento que usa o CodePipeline como origem do evento para acionar a regra quando há alterações no estado de um pipeline, estágio ou ação.

  • Destinos. A nova regra recebe um serviço selecionado como o destino do evento. Você pode configurar um serviço de destino para enviar notificações, capturar informações de status, tomar medidas corretivas, iniciar eventos ou realizar outras ações. Ao adicionar seu destino, você também deve conceder permissões ao EventBridge para permitir que ele invoque o serviço de destino selecionado.

Cada tipo de evento de alteração de estado de execução emite notificações com um conteúdo de mensagem específico, em que:

  • A entrada version inicial mostra o número da versão do evento.

  • A entrada version no pipeline detail mostra o número de versão da estrutura do pipeline.

  • A entrada execution-id no pipeline detail mostra o ID de execução do pipeline que provocou a alteração de estado. Consulte a chamada de API GetPipelineExecution na Referência da API do AWS CodePipeline.

  • A entrada pipeline-execution-attempt mostra o número de tentativas, ou novas tentativas, do ID de execução específico.

O CodePipeline reporta um evento para o EventBridge sempre que o estado de um recurso na Conta da AWS é alterado. Os eventos são emitidos de forma garantida, pelo menos uma vez, para os seguintes recursos:

  • Execuções de pipeline

  • Execuções de estágio

  • Execuções de ação

Os eventos são emitidos pelo EventBridge com o padrão de eventos e o esquema detalhados acima. Para eventos processados, como eventos que você recebe por meio de notificações que configurou no console do Developer Tools, a mensagem do evento inclui campos de padrão de evento com alguma variação. Por exemplo, o campo detail-type é convertido em detailType. Para obter mais informações, consulte a chamada de API PutEvents na Referência da API do Amazon EventBridge.

Os exemplos a seguir mostram eventos do CodePipeline. Sempre que possível, cada exemplo mostra o esquema de um evento emitido junto com o esquema de um evento processado.

Tipos de detalhes

Ao configurar eventos a serem monitorados, você pode escolher o tipo de detalhe do evento.

Você pode configurar notificações para que sejam enviadas quando o estado muda para:

  • Pipelines especificados ou todos os seus pipelines. Para controlar isso, use "detail-type": "CodePipeline Pipeline Execution State Change".

  • Estágios especificados ou todos os seus estágios, dentro de um pipeline especificado ou em todos os seus pipelines. Para controlar isso, use "detail-type": "CodePipeline Stage Execution State Change".

  • Ações especificadas ou todas as ações, dentro de um estágio especificado ou todos os estágios, dentro de um pipeline especificado ou todos os seus pipelines. Para controlar isso, use "detail-type": "CodePipeline Action Execution State Change".

nota

Os eventos emitidos pelo EventBridge contêm o parâmetro detail-type, que é convertido em detailType quando os eventos são processados.

Tipo de detalhe Estado Descrição
Alteração do estado de execução do pipeline no CodePipeline CANCELED A execução do pipeline foi cancelada porque a estrutura do pipeline foi atualizada.
COM FALHA A execução do pipeline não foi concluída com êxito.
RESUMED Uma execução malsucedida do pipeline foi retomada em resposta à chamada de API RetryStageExecution.
STARTED O pipeline está em execução no momento.
STOPPED O processo de interrupção é concluído e a execução do pipeline é interrompida.
STOPPING A execução do pipeline está sendo interrompida devido a uma solicitação para interromper e aguardar ou interromper e abandonar a execução do pipeline.
SUCCEEDED A execução do pipeline foi concluída com êxito.
SUPERSEDED

Embora a conclusão da execução desse pipeline estivesse programada para o estágio seguinte, uma nova execução se antecipou e prosseguiu pelo pipeline.

Alteração do estado de execução do estágio no CodePipeline CANCELED O estágio foi cancelado porque a estrutura do pipeline foi atualizada.
COM FALHA O estágio não foi concluído com êxito.
RESUMED Um estágio malsucedido foi retomado em resposta à chamada de API RetryStageExecution.
STARTED O estágio está em execução no momento.
STOPPED O processo de interrupção é concluído e a execução do estágio é interrompida.
STOPPING A execução do estágio é interrompida devido a uma solicitação para interromper e aguardar ou interromper e abandonar a execução do pipeline.
SUCCEEDED O estágio foi concluído com êxito.
Alteração do estado de execução da ação no CodePipeline ABANDONADO A ação é abandonada devido a uma solicitação para interromper e abandonar a execução do pipeline.
CANCELED A ação foi cancelada porque a estrutura do pipeline foi atualizada.
COM FALHA Para ações de aprovação, o estado FAILED significa que a ação foi rejeitada pelo revisor ou falhou devido a uma ação de configuração incorreta.
STARTED A ação está em execução no momento.
SUCCEEDED A ação foi concluída com êxito.

Eventos no nível do pipeline

Os eventos no nível do pipeline são emitidos quando há uma alteração de estado na execução de um pipeline.

Evento Pipeline INICIADO

Quando a execução de um pipeline é iniciada, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado "myPipeline" na região us-east-1. O campo id representa o ID do evento e o campo account representa o ID da conta em que o pipeline é criado.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:44:50Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento Pipeline PARANDO

Quando a execução de um pipeline está sendo interrompida, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado myPipeline na região us-west-2.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 "stop-execution-comments": "Stopping the pipeline for an update" } }

Evento Pipeline BEM-SUCEDIDO

Quando a execução de um pipeline é bem-sucedida, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado myPipeline na região us-east-1.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:44Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-30T22:13:51Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Pipeline BEM-SUCEDIDO (exemplo com tags Git)

Quando a execução de um pipeline tem um estágio que foi repetido e bem-sucedido, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo destina-se ao pipeline chamado myPipeline na região eu-central-1 em que execution-trigger está configurado para as tags Git.

nota

O campo execution-trigger terá tag-name ou branch-name, dependendo do tipo de evento que acionou o pipeline.

{ "version": "0", "id": "b128b002-09fd-4574-4eba-27152726c777", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T13:50:53Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "e17b5773-cc0d-4db2-9ad7-594c73888de8", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "SUCCEEDED", "version": 32.0, "pipeline-execution-attempt": 1.0 } }

Evento Pipeline COM FALHA

Quando a execução de um pipeline falha, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado "myPipeline" na região us-west-2.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Pipeline BEM-SUCEDIDO (exemplo com tags Git)

A menos que falhe no estágio de origem, para um pipeline configurado com gatilhos, ele emite um evento que envia notificações com o conteúdo a seguir. Este exemplo destina-se ao pipeline chamado myPipeline na região eu-central-1 em que execution-trigger está configurado para as tags Git.

nota

O campo execution-trigger terá tag-name ou branch-name, dependendo do tipo de evento que acionou o pipeline.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Eventos no nível do estágio

Os eventos no nível do estágio são emitidos quando há uma alteração de estado na execução de um estágio.

Evento Estágio INICIADO

Quando a execução de um estágio é iniciada, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado "myPipeline" na região us-east-1, para o estágio Prod.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "version": 1.0, "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:49:39.208Z", "stage": "Prod", "state": "STARTED", "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Stage Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:45:40Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Source", "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 0.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": { "sourceActions": [ { "sourceActionName": "Source", "sourceActionProvider": "CodeCommit", "sourceActionVariables": { "BranchName": "main", "CommitId": "<ID>", "RepositoryName": "my-repo" } } ] } }

Evento Estágio PARANDO

Quando a execução de um estágio está sendo interrompida, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado myPipeline na região us-west-2, para o estágio Deploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Evento Estágio PARADO

Quando a execução de um estágio é interrompida, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado myPipeline na região us-west-2, para o estágio Deploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Estágio RETOMADO após o evento de repetição de estágio

Quando a execução de um estágio é retomada e tem um estágio que foi repetido, ela emite um evento que envia notificações com o conteúdo a seguir.

Quando um estágio é repetido, o campo stage-last-retry-attempt-time é exibido, conforme mostrado no exemplo. O campo é exibido em todos os eventos do estágio se uma nova tentativa for realizada.

nota

O campo stage-last-retry-attempt-time estará presente em todos os eventos de estágio subsequentes após a repetição de um estágio.

{ "version": "0", "id": "38656bcd-a798-5f92-c738-02a71be484e1", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T14:14:56Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "05dafb6a-5a56-4951-a858-968795364846", "stage-last-retry-attempt-time": "2023-10-26T14:14:56.305Z", "stage": "Build", "state": "RESUMED", "version": 32.0, "pipeline-execution-attempt": 2.0 } }

Eventos no nível da ação

Os eventos no nível da ação são emitidos quando há uma alteração de estado na execução de uma ação.

Evento Ação INICIADA

Quando a execução de uma ação é iniciada, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado myPipeline na região us-east-1, para a ação de implantação myAction.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:51:09.981Z", "stage": "Prod", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "myAction", "state": "STARTED", "type": { "owner": "AWS", "category": "Deploy", "provider": "CodeDeploy", "version": "1" }, "version": 2.0 "pipeline-execution-attempt": 1.0 "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ] } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "state": "STARTED", "region": "us-east-1", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento Ação BEM-SUCEDIDA

Quando a execução de uma ação é bem-sucedida, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado "myPipeline" na região us-west-2, para a ação de origem "Source". Para esse tipo de evento, há dois campos region diferentes. O campo region do evento especifica a região do evento do pipeline. O campo region abaixo da seção detail especifica a região da ação.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:11Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Added LICENSE.txt", "external-execution-id": "8cf40fEXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:ACCOUNT:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "arn:aws:codepipeline:us-west-2:123456789012:myPipeline", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Edited index.html", "external-execution-id": "36ab3ab7EXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento Ação COM FALHA

Quando a execução de uma ação apresenta falha, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado "myPipeline" na região us-west-2, para a ação "Deploy".

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codedeploy/home?#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "execution-result": { "external-execution-url": "https://console.aws.amazon.com/codedeploy/home?region=us-west-2#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 13.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "additionalInformation": "Deployment <ID> failed" } }

Evento Ação ABANDONADA

Quando a execução de uma ação é abandonada, ela emite um evento que envia notificações com o conteúdo a seguir. Este exemplo refere-se ao pipeline chamado "myPipeline" na região us-west-2, para a ação "Deploy".

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "ABANDONED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Crie uma regra que envie uma notificação sobre um evento de pipeline

Uma regra observa determinados eventos e os encaminha para os destinos da AWS escolhidos. Você pode criar uma regra que executa uma ação da AWS automaticamente quando outra ação da AWS ocorre ou uma regra que executa uma ação da AWS regularmente com base em uma programação.

Enviar uma notificação quando o estado do pipeline é alterado (console)

Essas etapas mostram como usar o console do EventBridge para criar uma regra para enviar notificações de alteração no CodePipeline.

Para criar uma regra do EventBridge direcionada ao pipeline com uma origem do Amazon S3
  1. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  2. No painel de navegação, escolha Regras. Deixe o barramento padrão selecionado ou escolha um barramento de eventos. Escolha Criar regra.

  3. Em Nome, insira um nome para a regra.

  4. Em Tipo de regra, escolha Regra com um padrão de eventos. Escolha Próximo.

  5. Em Padrão de evento, escolha Serviços da AWS.

  6. Na lista suspensa Event Type, escolha o nível de alteração de estado para a notificação.

    • Para uma regra que se aplica a eventos em nível de pipeline, escolha CodePipeline Pipeline Execution State Change.

    • Para uma regra que se aplica a eventos em nível de estágio, escolha CodePipeline Stage Execution State Change.

    • Para uma regra que se aplica a eventos em nível de ação, escolha CodePipeline Action Execution State Change.

  7. Especifique as alterações de estado às quais a regra se aplica:

    • Para uma regra que se aplique a todas as alterações de estado, escolha Any state.

    • Para uma regra que se aplique a algumas alterações de estado, escolha Specific state(s) e, em seguida, um ou mais valores de estado na lista.

  8. Para padrões de evento mais detalhados do que os seletores permitem, você pode usar também a opção Editar padrão na janela Padrão de evento para designar um padrão de evento no formato JSON.

    nota

    Se não for especificado, o padrão de evento será criado para todos os pipelines/estágios/ações e estados.

    Para obter padrões de evento mais detalhados, você pode copiar e colar o exemplo de padrões de evento a seguir na janela Padrão de evento.

    • Use esse exemplo de padrão de evento para capturar ações malsucedidas de implantação e compilação em todos os pipelines.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Deploy", "Build"] } } }
    • Use esse exemplo de padrão de evento para capturar todas as ações de aprovação rejeitadas ou malsucedidas em todos os pipelines.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Approval"] } } }
    • Use esse exemplo de padrão de evento para capturar todos os eventos de pipelines especificados.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change", "CodePipeline Action Execution State Change", "CodePipeline Stage Execution State Change" ], "detail": { "pipeline": ["myPipeline", "my2ndPipeline"] } }
  9. Escolha Próximo.

  10. Em Tipos de destino, escolha Serviço da AWS.

  11. Em Selecionar um destino, escolha CodePipeline. Em ARN do pipeline, insira o ARN do pipeline a ser iniciado por esta regra.

    nota

    Para obter o ARN do pipeline, execute o comando get-pipeline. O ARN do pipeline é exibido na saída. Ele é construído neste formato:

    arn:aws:codepipeline:region:account:piopeline-name

    Exemplo de ARN do pipeline:

    arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline

  12. Para criar ou especificar um perfil de serviço do IAM que conceda permissões ao EventBridge para invocar o destino associado à regra do EventBridge (neste caso, o destino é o CodePipeline):

    • Escolha Criar um novo perfil para este recurso específico para criar um perfil de serviço que dê permissões ao EventBridge para iniciar as execuções do pipeline.

    • Escolha Usar perfil existente para inserir um perfil de serviço que dê permissões ao EventBridge para iniciar as execuções do pipeline.

  13. Escolha Próximo.

  14. Na página Tags, selecione Próximo.

  15. Na página Revisar e criar, revise a configuração da regra. Se você estiver satisfeito com a regra, escolha Create rule.

Enviar uma notificação quando o estado do pipeline é alterado (CLI)

Estas etapas mostram como usar a CLI para criar uma regra do CloudWatch Events para enviar notificações de alterações no CodePipeline.

Para usar a AWS CLI para criar uma regra, chame o comando put-rule, especificando:

  • Um nome que identifique de forma exclusiva a regra que você está criando. Esse nome deve ser exclusivo em todos os pipelines criados com o CodePipeline associado à sua conta da AWS.

  • O padrão de evento para a origem e os campos detalhados usados pela regra. Para obter mais informações, consulte Amazon EventBridge e padrões de eventos.

Para criar uma regra do EventBridge com o CodePipeline como origem do evento
  1. Chame o comando put-rulepara criar uma regra, especificando o padrão de evento. (Consulte as tabelas anteriores para ver os estados válidos.)

    O comando de exemplo a seguir usa --event-pattern para criar uma regra chamada “MyPipelineStateChanges” que emite o evento do CloudWatch quando uma execução de pipeline falha para o pipeline chamado "myPipeline".

    aws events put-rule --name "MyPipelineStateChanges" --event-pattern "{\"source\":[\"aws.codepipeline\"],\"detail-type\":[\"CodePipeline Pipeline Execution State Change\"],\"detail\":{\"pipeline\":[\"myPipeline\"],\"state\":[\"FAILED\"]}}"
  2. Chame o comando put-targets e inclua os seguintes parâmetros:

    • O parâmetro --rule é usado com rule_name criado por meio de put-rule.

    • O parâmetro --targets é usado com o Id de lista do destino na lista de destinos e o ARN do tópico do Amazon SNS.

    O exemplo de comando a seguir especifica que, para a regra chamada MyPipelineStateChanges, o Id do destino é composto do número um, indicando que, em uma lista de destinos para a regra, esse é o destino 1. O exemplo de comando também especifica um exemplo de ARN para o tópico do Amazon SNS.

    aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
  3. Adicionar permissões para o EventBridge para usar o serviço de destino designado para invocar a notificação. Para obter mais informações, consulte Usar políticas baseadas em recursos do Amazon EventBridge.