Monitoramento de CodePipeline eventos - 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á.

Monitoramento de CodePipeline eventos

Você pode monitorar CodePipeline eventos em EventBridge, o que fornece um fluxo de dados em tempo real de seus próprios aplicativos, aplicativos software-as-a-service (SaaS) e. Serviços da AWS EventBridge encaminha esses dados para destinos como o AWS Lambda Amazon Simple Notification Service. Esses eventos são os mesmos que aparecem no Amazon CloudWatch Events, que fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos AWS recursos. Para obter mais informações, consulte O que é a Amazon EventBridge? no Guia do EventBridge usuário da Amazon.

nota

A Amazon EventBridge é a forma preferida de gerenciar seus eventos. Amazon CloudWatch Events e EventBridge são o mesmo serviço subjacenteAPI, mas EventBridge oferecem mais recursos. As alterações feitas em CloudWatch Eventos ou 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 fonte do evento, como CodePipeline. Por exemplo, você pode criar uma regra com um padrão de evento que é usado CodePipeline como fonte de eventos para acionar a regra quando houver 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 alvo, você também deve conceder permissões 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 GetPipelineExecution API chamada na AWS CodePipeline APIReferência.

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

CodePipeline relata um evento EventBridge sempre que o estado de um recurso em seu for Conta da AWS alterado. Os eventos são emitidos de at-least-once forma garantida pelos seguintes recursos:

  • Execuções de pipeline

  • Execuções de estágio

  • Execuções de ação

Os eventos são emitidos 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 PutEvents API chamada na EventBridge APIReferência da Amazon.

Os exemplos a seguir mostram eventos para 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 por EventBridge contêm o detail-type parâmetro, que é convertido em detailType quando os eventos são processados.

Tipo de detalhe Estado Descrição
CodePipeline Alteração do estado de execução do pipeline CANCELED A execução do pipeline foi cancelada porque a estrutura do pipeline foi atualizada.
FAILED A execução do pipeline não foi concluída com êxito.
RESUMED Uma falha na execução do pipeline foi repetida em resposta à RetryStageExecution API chamada.
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.

CodePipeline Alteração do estado de execução do estágio CANCELED O estágio foi cancelado porque a estrutura do pipeline foi atualizada.
FAILED O estágio não foi concluído com êxito.
RESUMED Uma etapa com falha foi repetida em resposta à RetryStageExecution API chamada.
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.
CodePipeline Alteração do estado de execução da ação ABANDONED 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.
FAILED Para ações de aprovação, o FAILED estado significa que a ação foi rejeitada pelo revisor ou falhou devido a uma configuração de açã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.

STARTEDEvento Pipeline

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": {} }

STOPPINGEvento Pipeline

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" } }

SUCCEEDEDEvento Pipeline

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 SUCCEEDED (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 } }

FAILEDEvento Pipeline

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 FAILED (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.

STARTEDEvento teatral

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" } } ] } }

STOPPINGEvento teatral

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 } }

STOPPEDEvento teatral

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 } }

Evento de repetição etapa RESUMED após etapa

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.

STARTEDEvento de ação

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": {} }

SUCCEEDEDEvento de ação

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": {} }

FAILEDEvento de ação

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" } }

ABANDONEDEvento de ação

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 AWS alvos que você escolher. Você pode criar uma regra que executa uma AWS ação automaticamente quando outra AWS ação acontece ou uma regra que executa uma AWS ação regularmente em um cronograma definido.

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

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

Para criar uma EventBridge regra que tenha como alvo seu pipeline com uma fonte do Amazon S3
  1. Abra o EventBridge console da Amazon 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 no nível do pipeline, escolha CodePipelinePipeline Execution State Change.

    • Para uma regra que se aplica a eventos em nível de estágio, escolha Alteração do estado de execução de CodePipeline estágio.

    • Para uma regra que se aplica a eventos de nível de ação, escolha Alteração do estado de execução da CodePipeline ação.

  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 eventos mais detalhados do que o permitido pelos seletores, você também pode usar a opção Editar padrão na janela Padrão de eventos para designar um padrão de evento em JSON formato.

    nota

    Se não for especificado de outra forma, o padrão de evento será criado para todos pipelines/stages/actions os 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 alvo, escolha CodePipeline. Em Pipeline ARN, insira o pipeline ARN para que o pipeline seja iniciado por essa regra.

    nota

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

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

    Pipeline de amostraARN:

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

  12. Para criar ou especificar uma função IAM de serviço que conceda EventBridge permissões para invocar o alvo associado à sua EventBridge regra (nesse caso, o alvo é CodePipeline):

    • Escolha Criar uma nova função para esse recurso específico para criar uma função de serviço que dê EventBridge permissões para você iniciar suas execuções de funil.

    • Escolha Usar função existente para inserir uma função de serviço que conceda EventBridge permissões para você iniciar suas execuções de funil.

  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 mudar (CLI)

Essas etapas mostram como usar a regra de eventos CLI para criar uma regra de CloudWatch eventos para enviar notificações de alterações em CodePipeline.

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

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

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

Para criar uma EventBridge CodePipeline regra com a fonte 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 exemplo de comando a seguir é usado --event-pattern para criar uma regra chamada “MyPipelineStateChanges” que emite o CloudWatch evento quando a execução de um 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 --targets parâmetro é usado com a lista Id do alvo na lista de destinos e com o SNS tópico ARN da Amazon.

    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 comando de amostra também especifica um exemplo ARN para o SNS tópico da Amazon.

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