View a markdown version of this page

Uso EventBridge com pipelines do Image Builder - EC2 Image Builder

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á.

Uso EventBridge com pipelines do Image Builder

AWS e serviços de parceiros transmitem eventos para os ônibus de EventBridge eventos da Amazon quase em tempo real. Você também pode enviar seus próprios eventos personalizados. Os ônibus de eventos usam regras para direcionar cada evento para um ou mais alvos.

O Image Builder funciona EventBridge em duas direções independentes:

  • Inicie uma criação de pipeline a partir de uma regra. Você pode definir um pipeline do Image Builder como um destino de regra, então EventBridge executa o pipeline quando um evento corresponde à regra ou quando um agendamento é acionado. Consulte Acione uma criação de funil de acordo com um cronograma e Acione uma construção de pipeline a partir de um padrão de evento.

  • Reaja aos eventos que o Image Builder envia. O Image Builder publica eventos no barramento de eventos padrão quando ocorrem alterações significativas, por exemplo, quando uma imagem se torna AVAILABLE ou um escaneamento detecta CVEs. Você pode combinar esses eventos com uma regra e encaminhá-los para destinos como uma função do Lambda ou um tópico do Amazon SNS para iniciar suas próprias automações. Consulte Reaja aos eventos que o Image Builder envia.

Para obter mais informações sobre os eventos que o Image Builder envia e os campos em cada evento, consulteMensagens de eventos que o Image Builder envia.

nota

Os ônibus para eventos são Region-specific. Uma regra e os recursos que ela invoca normalmente estão na mesma região; para rotear entre regiões, use um ônibus de eventos na região de destino. O Image Builder publica seus eventos no barramento de eventos padrão na região em que a compilação é executada.

EventBridge termos

Os termos a seguir ajudam você a entender como EventBridge se integra aos seus pipelines do Image Builder.

Event

Descreve uma alteração em um ambiente que pode afetar um ou mais recursos do aplicativo. O ambiente pode ser um AWS ambiente, um serviço ou aplicativo de um parceiro SaaS ou um de seus aplicativos ou serviços. Também é possível configurar eventos agendados em uma linha do tempo.

Barramento de eventos

Um pipeline que recebe dados de eventos de aplicativos e serviços.

Fonte

O serviço ou aplicativo que enviou o evento para o ônibus do evento.

Destino

Um recurso ou endpoint que EventBridge invoca quando corresponde a uma regra, entregando dados do evento para o destino.

Regra

Uma regra corresponde a eventos de entrada e encaminha-os para os destinos para processamento. Uma única regra pode enviar um evento para vários destinos, que podem ser executados paralelamente. As regras são baseadas em um padrão de evento ou em uma programação.

Padrão

Um padrão de evento define a estrutura do evento e os campos aos quais uma regra corresponde para iniciar a ação de destino.

Agendamento

As regras de agendamento executam uma ação em um cronograma, como executar um pipeline do Image Builder para atualizar uma imagem trimestralmente. Há dois tipos de expressões de agendamento:

  • Expressões Cron: combine critérios de agendamento específicos usando a sintaxe cron que pode delinear critérios simples; por exemplo, execução semanal em um dia específico. Você também pode estabelecer critérios mais complexos, como correr trimestralmente no quinto dia do mês, entre 2h e 4h.

  • Expressões de taxa: especifique um intervalo regular quando o alvo é invocado, como a cada 12 horas.

Veja EventBridge as regras do seu pipeline do Image Builder

A guia de EventBridge regras na página de detalhes dos pipelines de imagens do Image Builder exibe os barramentos de EventBridge eventos aos quais sua conta tem acesso e as regras do barramento de eventos selecionado que se aplicam ao pipeline atual. Essa guia também está vinculada diretamente ao EventBridge console para criar novos recursos.

Ações vinculadas ao EventBridge console
  • Crie um barramento de eventos

  • Criar regra

Para saber mais EventBridge, consulte os tópicos a seguir no Guia do EventBridge usuário da Amazon.

Acione uma criação de funil de acordo com um cronograma

Defina um pipeline do Image Builder como o alvo de uma regra de EventBridge agendamento para atualizar uma imagem em uma cadência regular. O exemplo a seguir cria uma regra que inicia a criação de um pipeline a cada 90 dias.

nota

Um pipeline também pode carregar sua própria programação embutida (uma expressão cron ou de taxa armazenada no pipeline). Esse agendamento é gerenciado pelo Image Builder e é separado de qualquer EventBridge regra:

  • Use o cronograma do pipeline para uma simples reconstrução recorrente. Ele também pode bloquear compilações com base em atualizações de dependências e desativar automaticamente um pipeline com falha. Veja Schedule na Referência da API do EC2 Image Builder.

  • Use uma EventBridge regra para iniciar uma construção a partir de um padrão de evento ou para direcionar um gatilho para vários alvos.

Console de gerenciamento da AWS
  1. Abra o console do EC2 Image Builder em https://console.aws.amazon.com/imagebuilder/.

  2. Para ver uma lista dos pipelines de imagem criados em sua conta, escolha Pipelines de imagem no painel de navegação.

    nota

    A lista de canais de imagem inclui um indicador do tipo de imagem de saída criada pelo pipeline — AMI ouDocker.

  3. Para ver detalhes ou editar um pipeline, escolha o link do nome do pipeline. Isto abre a visão detalhada do pipeline.

    nota

    Você também pode selecionar a caixa ao lado de ‭Nome do pipeline‭‬, depois escolher ‭Exibir detalhes‭‬.

  4. Abra a guia de EventBridge regras.

  5. Mantenha o barramento de eventos padrão pré-selecionado no painel Barramento de eventos.

  6. Escolha Criar regra. Isso leva você à página Criar regra no EventBridge console da Amazon.

  7. Insira um nome e uma descrição para a regra. O nome da regra deve ser exclusivo no barramento de eventos da região selecionada.

  8. No painel Definir padrão, escolha a opção Programação. Isso expande o painel, com a taxa fixa de todas as opções selecionadas.

  9. Insira 90 na primeira caixa e selecione Dias na lista suspensa.

  10. Execute as seguintes ações no painel Selecionar alvos:

    1. Selecione na EC2 Image Builder lista suspensa Alvo.

    2. Para aplicar a regra a um pipeline do Image Builder, selecione o pipeline de destino na lista suspensa Pipeline de imagens.

    3. EventBridge precisa de permissão para iniciar uma construção para o pipeline selecionado. Neste exemplo, mantenha a opção padrão de Criar uma nova função para esse recurso específico.

    4. Escolha Adicionar destino.

  11. Selecione Criar

nota

O EventBridge console atual pode criar agendas por meio do EventBridge Scheduler, e os rótulos e etapas exatos podem mudar com o tempo. O Guia EventBridge do usuário da Amazon vinculado é confiável para a experiência atual do console.

AWS CLI

Essas etapas criam uma regra de agendamento que inicia a construção de um pipeline a cada 90 dias. EventBridge precisa de uma função do IAM que possa assumir para chamar imagebuilder:StartImagePipelineExecution seu funil.

  1. Crie uma regra com uma expressão de taxa:

    aws events put-rule \ --name refresh-image-every-90-days \ --schedule-expression "rate(90 days)"
  2. Crie uma função do IAM que EventBridge possa assumir, com esta política de confiança:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

    Anexe uma política de permissões que permita que o pipeline comece:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "imagebuilder:StartImagePipelineExecution", "Resource": "arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/my-pipeline" }] }
  3. Adicione o pipeline como destino da regra, fazendo referência à função da etapa anterior:

    aws events put-targets \ --rule refresh-image-every-90-days \ --targets '[{ "Id": "1", "Arn": "arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/my-pipeline", "RoleArn": "arn:aws:iam::111122223333:role/EventBridgeImageBuilderRole" }]'
  4. Confirme se o alvo está anexado:

    aws events list-targets-by-rule --rule refresh-image-every-90-days
nota

Para saber mais sobre as configurações das regras de expressão de taxa que não são abordadas neste exemplo, consulte Expressões de taxa no Guia EventBridge do usuário da Amazon.

Acione uma construção de pipeline a partir de um padrão de evento

Em vez de um cronograma, você pode iniciar a criação de um pipeline quando um evento corresponder a um padrão. Crie uma regra com um padrão de evento e adicione seu pipeline como destino (com a mesma função do IAM descrita emAcione uma criação de funil de acordo com um cronograma).

O exemplo a seguir inicia uma construção sempre que uma imagem base específica se torna AVAILABLE — por exemplo, para encadear uma construção de imagem dependente após a conclusão da imagem base. O resources prefixo define o escopo da regra para a imagem base para que ela corresponda somente a essa imagem, e não à saída do próprio pipeline dependente:

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE"] } }, "resources": [{ "prefix": "arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/" }] }
Importante

Escale o padrão do evento para a imagem base, conforme mostrado pelo resources prefixo neste exemplo. Um padrão que corresponde a cada AVAILABLE imagem na conta também corresponde à imagem de saída do próprio pipeline dependente, que inicia o pipeline novamente e pode criar um ciclo de construção infinito. Filtre pelo nome da imagem base específica ou pelo prefixo ARN para que a regra corresponda somente à imagem que você deseja.

Console de gerenciamento da AWS
  1. Abra o EventBridge console da Amazon em https://console.aws.amazon.com/events/.

  2. Escolha Regras e, em seguida, Criar regra. Mantenha o barramento de eventos padrão.

  3. Insira um nome e uma descrição. Em Tipo de regra, escolha Regra com um padrão de eventos.

  4. Para a fonte do evento, escolha Outro e cole o padrão do evento acima na caixa Padrão do evento.

  5. No painel Selecionar destinos, escolha EC2 Image Builder na lista suspensa Target e, em seguida, escolha o pipeline a ser construído na lista suspensa Image Pipeline.

  6. EventBridge precisa de permissão para iniciar o pipeline. Mantenha a opção padrão para criar uma nova função para esse recurso específico.

  7. Escolha Criar regra.

AWS CLI

Crie a regra e adicione o pipeline como destino:

aws events put-rule \ --name rebuild-on-base-available \ --event-pattern '{"source":["aws.imagebuilder"],"detail-type":["EC2 Image Builder Image State Change"],"detail":{"state":{"status":["AVAILABLE"]}},"resources":[{"prefix":"arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/"}]}' aws events put-targets \ --rule rebuild-on-base-available \ --targets '[{"Id":"1","Arn":"arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/dependent-pipeline","RoleArn":"arn:aws:iam::111122223333:role/EventBridgeImageBuilderRole"}]'

Para os eventos que você pode combinar e seus campos, consulteMensagens de eventos que o Image Builder envia.

Reaja aos eventos que o Image Builder envia

O Image Builder publica eventos no barramento de eventos padrão quando seus recursos atingem pontos significativos, por exemplo, quando uma imagem muda de estado, uma digitalização é concluída, uma etapa do fluxo de trabalho é interrompida para entrada ou um pipeline é automaticamente desativado. Você pode combinar esses eventos com uma regra e encaminhá-los para um alvo para iniciar sua própria automação. Os padrões comuns incluem:

  • Notifique uma equipe por meio de um tópico do Amazon SNS quando uma imagem se tornar AVAILABLE ouFAILED.

  • Invoque uma função do Lambda para registrar uma nova AMI em um repositório de parâmetros, iniciar testes de conformidade externos ou atualizar um pipeline de implantação.

  • Alerta sobre descobertas de segurança quando um escaneamento relata CVEs críticos.

  • Promova um fluxo de trabalho de aprovação quando uma etapa do WaitForAction fluxo de trabalho pausa uma compilação.

Para agir em um evento enviado pelo Image Builder, crie uma regra cujo padrão de evento corresponda ao evento source (aws.imagebuilder) edetail-type, opcionalmente, restrinja os campos internos. detail Em seguida, adicione o alvo que executa sua automação.

Exemplo: notificar sobre a conclusão da imagem (AVAILABLEouFAILED)

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE", "FAILED"] } } }

Exemplo: Alerta somente quando um escaneamento encontra CVEs críticos

Use um combinador numérico para que escaneamentos limpos não acionem a regra:

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder CVE Detected"], "detail": { "finding-severity-counts": { "critical": [{ "numeric": [">", 0] }] } } }
Console de gerenciamento da AWS
  1. Abra o EventBridge console da Amazon em https://console.aws.amazon.com/events/.

  2. Escolha Regras e, em seguida, Criar regra. Mantenha o barramento de eventos padrão.

  3. Insira um nome e uma descrição. Em Tipo de regra, escolha Regra com um padrão de eventos.

  4. Para a fonte do evento, escolha Outro e cole um dos padrões de eventos acima na caixa Padrão do evento.

  5. Escolha seu alvo — por exemplo, um tópico do Amazon SNS ou uma função do Lambda — e complete as configurações de destino.

  6. Escolha Criar regra.

AWS CLI

Crie a regra e envie eventos correspondentes para um tópico do Amazon SNS:

aws events put-rule \ --name image-available-or-failed \ --event-pattern '{"source":["aws.imagebuilder"],"detail-type":["EC2 Image Builder Image State Change"],"detail":{"state":{"status":["AVAILABLE","FAILED"]}}}' aws events put-targets \ --rule image-available-or-failed \ --targets '[{"Id":"1","Arn":"arn:aws:sns:us-west-2:111122223333:image-status"}]'

EventBridge também precisa de permissão para enviar eventos ao seu alvo. Para obter mais informações sobre as permissões que cada tipo de alvo exige, consulte Permissões para enviar eventos para destinos e Uso de políticas baseadas em recursos para a Amazon EventBridge no Guia do EventBridge usuário da Amazon.

nota

Quando você combina o EC2 Image Builder Workflow Step Waiting evento, seu alvo pode ligar SendWorkflowStepAction com o workflow-step-execution-id do evento e um action de RESUME ouSTOP. Consulte WaitForAction.