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á.
Crie uma amostra de notificações para CodeBuild
O Amazon CloudWatch Events tem suporte integrado para AWS CodeBuild. CloudWatch Eventos é um fluxo de eventos do sistema que descreve as mudanças em seus AWS recursos. Com CloudWatch os Eventos, você escreve regras declarativas para associar eventos de interesse às ações automatizadas a serem tomadas. Este exemplo usa o Amazon CloudWatch Events e o Amazon Simple Notification Service (AmazonSNS) para enviar notificações de compilação aos assinantes sempre que as compilações forem bem-sucedidas, falharem, passarem de uma fase de construção para outra ou qualquer combinação desses eventos.
Importante
A execução dessa amostra pode resultar em cobranças em sua AWS conta. Isso inclui possíveis cobranças por CodeBuild e por AWS recursos e ações relacionados à Amazon CloudWatch e à AmazonSNS. Para obter mais informações, consulte CodeBuild preços
Tópicos
Execute a amostra de notificações de compilação
Use o procedimento a seguir para executar a amostra de notificações de compilação.
Como executar este exemplo
-
Se você já tem um tópico configurado e inscrito na Amazon SNS que deseja usar para esta amostra, vá para a etapa 4. Caso contrário, se você estiver usando um IAM usuário em vez de uma conta AWS raiz ou um usuário administrador para trabalhar com a AmazonSNS, adicione a seguinte declaração (entre
### BEGIN ADDING STATEMENT HERE ###
e### END ADDING STATEMENT HERE ###
) para o usuário (ou IAM grupo ao qual o usuário está associado). Não é recomendável usar uma conta AWS root. Essa declaração permite visualizar, criar, assinar e testar o envio de notificações para tópicos na AmazonSNS. As elipses (...
) são usadas para agilizar e para ajudá-lo a encontrar onde adicionar a declaração. Não remova nenhuma declaração e não digite essas elipses na política existente.{ "Statement": [
### BEGIN ADDING STATEMENT HERE ###
{ "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:List*", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "*", "Effect": "Allow" },### END ADDING STATEMENT HERE ###
... ], "Version": "2012-10-17" }nota
A IAM entidade que modifica essa política deve ter permissão IAM para modificar as políticas.
Para obter mais informações, consulte Edição de políticas gerenciadas pelo cliente ou a seção “Para editar ou excluir uma política embutida para um grupo, usuário ou função” em Trabalho com políticas embutidas (console) no Guia do IAMusuário.
-
Crie ou identifique um tópico na AmazonSNS. AWS CodeBuild usa CloudWatch Eventos para enviar notificações de criação para esse tópico por meio da AmazonSNS.
Para criar um tópico:
-
Abra o SNS console da Amazon em https://console.aws.amazon.com/sns
. -
Escolha Criar tópico.
-
Em Create new topic (Criar novo tópico), em Topic name (Nome do tópico), insira um nome para o tópico (por exemplo,
CodeBuildDemoTopic
). (Se escolher um nome diferente, substitua-o ao longo desse exemplo.) -
Escolha Criar tópico.
-
Na CodeBuildDemoTopic página Detalhes do tópico:, copie o ARN valor do tópico. Você precisa desse valor na próxima etapa.
Para obter mais informações, consulte Criar um tópico no Amazon SNS Developer Guide.
-
-
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:
-
Com o SNS console da Amazon aberto na etapa anterior, no painel de navegação, escolha Assinaturas e, em seguida, escolha Criar assinatura.
-
Em Criar assinatura, em Tópico ARN, cole o tópico ARN que você copiou da etapa anterior.
-
Em Protocolo, escolha Email.
-
Em Endpoint, insira o endereço de e-mail completo do destinatário.
-
Escolha Create Subscription.
-
SNSA Amazon envia um e-mail de confirmação da assinatura para o destinatário. Para começar a receber notificações por e-mail, o destinatário deve escolher o link Confirm subscription no e-mail de confirmação da assinatura. Depois que o destinatário clicar no link, se a assinatura for bem-sucedida, a Amazon SNS exibirá uma mensagem de confirmação no navegador do destinatário.
Para obter mais informações, consulte Inscrever-se em um tópico no Amazon SNS Developer Guide.
-
-
Se você estiver usando um usuário em vez de uma conta AWS raiz ou um usuário administrador para trabalhar com CloudWatch Eventos, adicione a seguinte declaração (entre
### BEGIN ADDING STATEMENT HERE ###
e### END ADDING STATEMENT HERE ###
) para o usuário (ou IAM grupo ao qual o usuário está associado). Não é recomendável usar uma conta AWS root. Essa declaração é usada para permitir que o usuário trabalhe com CloudWatch Eventos. As elipses (...
) são usadas para agilizar e para ajudá-lo a encontrar onde adicionar a declaração. Não remova nenhuma declaração e não digite essas elipses na política existente.{ "Statement": [
### BEGIN ADDING STATEMENT HERE ###
{ "Action": [ "events:*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" },### END ADDING STATEMENT HERE ###
... ], "Version": "2012-10-17" }nota
A IAM entidade que modifica essa política deve ter permissão IAM para modificar as políticas.
Para obter mais informações, consulte Edição de políticas gerenciadas pelo cliente ou a seção “Para editar ou excluir uma política embutida para um grupo, usuário ou função” em Trabalho com políticas embutidas (console) no Guia do IAMusuário.
-
Crie uma regra em CloudWatch Eventos. Para fazer isso, abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch
. -
No painel de navegação, em Events, escolha Rules e Create rule.
-
Na Step 1: Create rule page (página Etapa 1: criar regra), Event Pattern (Padrão de evento) e Build event pattern to match events by service (Criar padrão de eventos para corresponder a eventos por serviço) já devem estar selecionados.
-
Em Service Name (Nome do serviço), escolha CodeBuild. Em Event Type (Tipo de evento), All Events (Todos os eventos) já deve estar selecionado.
-
O código a seguir deve ser exibido na Event Pattern Preview (Visualização do padrão de evento):
{ "source": [ "aws.codebuild" ] }
-
Escolha Edit (Editar) e substitua o código na Event Pattern Preview (Visualização do padrão de evento) por um dos dois padrões de regra a seguir.
Esse primeiro padrão de regra aciona um evento quando uma compilação é iniciada ou concluída, para os projetos de compilação especificados no AWS CodeBuild.
{ "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build State Change" ], "detail": { "build-status": [ "IN_PROGRESS", "SUCCEEDED", "FAILED", "STOPPED" ], "project-name": [ "
my-demo-project-1
", "my-demo-project-2
" ] } }Na regra anterior, faça as alterações no código a seguir conforme necessário.
-
Para acionar um evento quando uma compilação é iniciada ou concluída, deixe todos os valores conforme mostrado na matriz
build-status
ou remova a matrizbuild-status
junto. -
Para acionar um evento somente quando uma compilação for concluída, remova
IN_PROGRESS
da matrizbuild-status
. -
Para acionar um evento somente quando uma compilação é iniciada, remova todos os valores, exceto
IN_PROGRESS
da matrizbuild-status
. -
Para acionar eventos para todos os projetos de compilação, remova a matriz
project-name
junto. -
Para acionar eventos apenas para projetos de compilação individuais, especifique o nome de cada projeto de compilação na matriz
project-name
.
Esse segundo padrão de regra aciona um evento sempre que uma compilação passa de uma fase de compilação para outra, para os projetos de compilação especificados no AWS CodeBuild.
{ "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build Phase Change" ], "detail": { "completed-phase": [ "SUBMITTED", "PROVISIONING", "DOWNLOAD_SOURCE", "INSTALL", "PRE_BUILD", "BUILD", "POST_BUILD", "UPLOAD_ARTIFACTS", "FINALIZING" ], "completed-phase-status": [ "TIMED_OUT", "STOPPED", "FAILED", "SUCCEEDED", "FAULT", "CLIENT_ERROR" ], "project-name": [ "
my-demo-project-1
", "my-demo-project-2
" ] } }Na regra anterior, faça as alterações no código a seguir conforme necessário.
-
Para acionar um evento para cada alteração na fase de compilação (que pode enviar até nove notificações para cada compilação), deixe todos os valores conforme mostrado na matriz
completed-phase
ou remova a matrizcompleted-phase
junto. -
Para acionar eventos apenas para alterações feitas na fase de compilação individuais, remova o nome de cada fase de compilação na matriz
completed-phase
para a qual você não deseja acionar um evento. -
Para acionar um evento para cada alteração feita no status da fase de compilação, deixe todos os valores conforme mostrado na matriz
completed-phase-status
ou remova a matrizcompleted-phase-status
junto. -
Para acionar eventos apenas para alterações feitas no status da fase de compilação individuais, remova o nome de cada status da fase de compilação na matriz
completed-phase-status
para a qual você não deseja acionar um evento. -
Para acionar eventos para todos os projetos de compilação, remova a matriz
project-name
. -
Para acionar eventos para projetos de compilação individuais, especifique o nome de cada projeto de compilação na matriz
project-name
.
Para obter mais informações sobre padrões de eventos, consulte Padrões de eventos no Guia EventBridge do usuário da Amazon.
Para obter mais informações sobre a filtragem com padrões de eventos, consulte Filtragem baseada em conteúdo com padrões de eventos no Guia do usuário da Amazon EventBridge .
nota
Se quiser acionar eventos para alterações feitas no estado de compilação e alterações na fase de compilação, é necessário criar duas regras à parte: uma para alterações feitas no estado da compilação e outra para alterações feitas na fase de compilação. Se você tentar integrar ambas as regras em uma única, a regra combinada poderá produzir resultados inesperados ou deixar de funcionar em conjunto.
Quando você tiver concluído a substituição do código, escolha Save.
-
-
Em Targets, escolha Add target.
-
Na lista de alvos, escolha o SNStópico.
-
Em Topic, escolha o tópico que você identificou ou criou anteriormente.
-
Expanda Configure input e escolha Input Transformer.
-
Na caixa Input Path (Caminho de entrada), digite um dos caminhos de entrada a seguir.
Para uma regra com um valor
detail-type
deCodeBuild Build State Change
, insira o seguinte.{"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}
Para uma regra com um valor
detail-type
deCodeBuild Build Phase Change
, insira o seguinte.{"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}
Para obter outros tipos de informações, consulte Referência do formato de entrada das notificações de compilação.
-
Na caixa Input Template (Modelo de entrada), insira um dos modelos de entrada.
Para uma regra com um valor
detail-type
deCodeBuild Build State Change
, insira o seguinte."Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."
Para uma regra com um valor
detail-type
deCodeBuild Build Phase Change
, insira o seguinte."Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."
-
Escolha Configure details (Configurar detalhes).
-
Na página Step 2: Configure rule details (Etapa 2: configurar detalhes da regra) insira um nome e uma descrição opcional. Em State (Estado), deixe Enabled (Habilitado) selecionado.
-
Escolha Criar Regra.
-
Crie projetos de compilação, execute as compilações e visualize informações de compilação.
-
Confirme se agora CodeBuild está enviando notificações de compilação com sucesso. 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 CloudWatch console, escolha a regra que você deseja alterar, escolha Ações e, em seguida, escolha Editar. Faça alterações na regra e escolha Configure details (Configurar detalhes) e Update rule (Atualizar regra).
Para parar de usar uma regra para enviar notificações de compilação, no CloudWatch console, escolha a regra que você deseja parar de usar, escolha Ações e, em seguida, escolha Desativar.
Para excluir completamente uma regra, no CloudWatch console, escolha a regra que você deseja excluir, escolha Ações e, em seguida, escolha Excluir.