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 pipelinedetail
mostra o número de versão da estrutura do pipeline. -
A entrada
execution-id
no pipelinedetail
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.
Tópicos
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.
Tópicos
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.
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
.
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
.
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.
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.
Tópicos
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
.
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
.
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.
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"
.
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.
Tópicos
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
Abra o EventBridge console da Amazon em https://console.aws.amazon.com/events/
. -
No painel de navegação, escolha Regras. Deixe o barramento padrão selecionado ou escolha um barramento de eventos. Escolha Criar Regra.
-
Em Nome, insira um nome para a regra.
-
Em Tipo de regra, escolha Regra com um padrão de eventos. Escolha Próximo.
-
Em Padrão de evento, escolha Serviços da AWS .
-
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.
-
-
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.
-
-
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"] } }
-
-
Escolha Próximo.
-
Em Tipos de destino, escolha Serviço da AWS .
-
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
-
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.
-
-
Escolha Próximo.
-
Na página Tags, selecione Próximo.
-
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
-
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\"]}}"
-
Chame o comando put-targets e inclua os seguintes parâmetros:
-
O parâmetro
--rule
é usado comrule_name
criado por meio de put-rule. -
O
--targets
parâmetro é usado com a listaId
do alvo na lista de destinos e com o SNS tópicoARN
da Amazon.
O exemplo de comando a seguir especifica que, para a regra chamada
MyPipelineStateChanges
, oId
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 exemploARN
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
-
-
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