Tutorial: Configurar uma regra do CloudWatch Events para receber notificações por e-mail de alterações de estado do pipeline
Após configurar um pipeline no AWS CodePipeline, você poderá configurar uma regra do CloudWatch Events para enviar notificações sempre que houver alterações no estado de execução de seus pipelines ou em estágios ou ações em seus pipelines. Para obter mais informações sobre como usar o CloudWatch Events para configurar notificações de alterações no estado do pipeline, consulte Monitoramento de eventos do CodePipeline.
Neste tutorial, você configura uma notificação para enviar um e-mail quando o estado de um pipeline muda para FAILED. Este tutorial usa um método transformador de entrada quando se cria a regra do CloudWatch Events. Ele transforma os detalhes de esquema da mensagem para enviar a mensagem em texto legível por humanos.
nota
Ao criar os recursos para este tutorial, como a notificação do Amazon SNS e a regra do CloudWatch Events, certifique-se de que os recursos sejam criados na mesma região da AWS que o pipeline.
Tópicos
Etapa 1: Configurar uma notificação por e-mail usando o Amazon SNS
O Amazon SNS coordena o uso de tópicos para enviar mensagens a endpoints ou clientes assinantes. Use o Amazon SNS para criar um tópico de notificação e assinar o tópico usando seu endereço de e-mail. O tópico do Amazon SNS será adicionado como destino à regra do CloudWatch Events. Para obter mais informações, consulte o Guia do desenvolvedor do Amazon Simple Notification Service.
Crie ou identifique um tópico no Amazon SNS. O CodePipeline usará o CloudWatch Events para enviar notificações sobre esse tópico por meio do Amazon SNS. Para criar um tópico:
-
Abra o console do Amazon SNS em https://console.aws.amazon.com/sns
. -
Escolha Criar tópico.
-
Na caixa de diálogo Create new topic (Criar novo tópico), em Topic name (Nome do tópico), digite um nome para o tópico (por exemplo,
PipelineNotificationTopic).
-
Escolha Create topic (Criar tópico).
Para obter mais informações, consulte Criar um tópico no Guia do desenvolvedor do Amazon SNS.
Faça a assinatura de um ou mais destinatários para o tópico para que recebam notificações por e-mail. Para fazer a assinatura de um destinatário para um tópico:
-
No console do Amazon SNS, na lista Tópicos, marque a caixa de seleção ao lado do novo tópico. Escolha Actions, Subscribe to topic.
-
Na caixa de diálogo Create subscription, verifique se é exibido um ARN em Topic ARN.
-
Em Protocolo, escolha E-mail.
-
Em Endpoint, digite o endereço de e-mail completo do destinatário.
-
Escolha Criar inscrição.
-
O Amazon SNS envia um e-mail de confirmação de assinatura ao destinatário. Para receber notificações de e-mail, o destinatário deve escolher o link Confirm subscription nesse e-mail. Assim que o destinatário clicar no link, se a assinatura tiver sido realizada com êxito, o Amazon SNS exibirá uma mensagem de confirmação no navegador web do destinatário.
Para obter mais informações, consulte Assinar um tópico no Guia do desenvolvedor do Amazon SNS.
Etapa 2: Criar uma regra e adicionar o tópico do SNS como destino
Crie uma regra de notificação do CloudWatch Events com o CodePipeline como origem do evento.
Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, escolha Eventos.
-
Escolha Criar regra. Em Event source (Origem do evento), escolha AWS CodePipeline. Em Event Type, escolha Pipeline Execution State Change.
-
Escolha Specific state(s) (Estado[s] específico[s]) e
FAILED. -
Escolha Edit para abrir o editor de JSON no painel Event Pattern Preview. Adicione o parâmetro
pipelinecom o nome de seu pipeline, como mostrado no exemplo a seguir para um pipeline chamado "myPipeline".É possível copiar o padrão de evento aqui e colá-lo no console:
{ "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change" ], "detail": { "state": [ "FAILED" ], "pipeline": [ "myPipeline" ] } } -
Em Targets, escolha Add target.
-
Na lista de destinos, escolha SNS topic. Em Topic, insira o tópico que você criou.
-
Expanda Configure input e escolha Input Transformer.
-
Na caixa Input Path, digite os pares de chave/valor a seguir.
{ "pipeline" : "$.detail.pipeline" }Na caixa Input Template, digite o seguinte:
"The Pipeline <pipeline> has failed." -
Escolha Configure details (Configurar detalhes).
-
Na página Configure rule details, digite um nome e, opcionalmente, uma descrição. Em State, deixe a caixa Enabled marcada.
-
Escolha Criar regra.
-
Confirme se agora o CodePipeline está enviando notificações de compilação. Por exemplo, verifique se agora os e-mails de notificação de compilação estão em sua caixa de entrada.
-
Para alterar o comportamento de uma regra, no console do CloudWatch, escolha a regra e, em seguida, escolha Ações e Editar. Edite a regra e escolha Configure details e, em seguida, Update rule.
Para parar de usar uma regra para enviar notificações de compilação, no console do CloudWatch, escolha a regra e, em seguida, escolha Ações e Desabilitar.
Para excluir a regra, no console do CloudWatch, escolha a regra e, em seguida, escolha Ações e Excluir.
Etapa 3: Limpar os recursos
Após concluir este tutorial, você deverá excluir o pipeline e os recursos usados para não ser cobrado pelo uso contínuo desses recursos.
Para obter informações sobre como limpar a notificação do SNS e excluir a regra do Amazon CloudWatch Events, consulte Limpeza (Cancelar inscrição de um tópico do Amazon SNS) e consulte DeleteRule na Referência de API do Amazon CloudWatch Events.