Usar o Elastic Beanstalk com o Amazon EventBridge - AWS Elastic Beanstalk

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

Usar o Elastic Beanstalk com o Amazon EventBridge

Usando o Amazon EventBridge, você pode configurar regras orientadas por eventos que monitoram os recursos do Elastic Beanstalk e iniciam ações de destino que usam outros produtos da AWS. Por exemplo, você pode definir uma regra para enviar notificações por e-mail sinalizando um tópico do Amazon SNS sempre que a integridade de um ambiente de produção mudar para um status de Warning (Aviso). . Ou você pode definir uma função do Lambda para passar uma notificação ao Slack sempre que a integridade do seu ambiente mudar para um status Degradated (Degradado) ou Severe (Grave).

Você pode criar regras no Amazon EventBridge para atuar em qualquer um dos seguintes eventos do Elastic Beanstalk:

  • Alterações de estado para operações de ambiente (incluindo operações de criação, atualização e encerramento). O evento especificará se a alteração de estado foi iniciada, bem-sucedida ou falhou.

  • Alterações de estado para outros recursos. Além dos ambientes, outros recursos monitorados incluem balanceadores de carga, grupos de escalabilidade automática e instâncias.

  • Transição de integridade para ambientes. O evento indica onde a integridade do ambiente passou de um determinado estado para outro.

  • Alteração de estado para atualizações gerenciadas. O evento especificará se a alteração de estado foi iniciada, bem-sucedida ou falhou.

Para capturar eventos específicos do Elastic Beanstalk de seu interesse, defina padrões específicos do evento que o EventBridge possa usar para detectar os eventos. Os padrões de eventos têm a mesma estrutura que os eventos aos quais correspondem. O padrão menciona os campos com os quais você deseja fazer a correspondência e fornece os valores que você está procurando. Os eventos são emitidos com base no melhor esforço. Eles são entregues do Elastic Beanstalk para o EventBridge quase em tempo real em circunstâncias operacionais normais. No entanto, podem surgir situações que podem atrasar ou impedir a entrega de um evento.

Para obter uma lista de campos incluídos nos eventos do Elastic Beanstalk e seus possíveis valores de string, consulte Mapeamento de campo de evento do Elastic Beanstalk. Para obter informações sobre como as regras do EventBridge funcionam com padrões de eventos, consulte Padrões de eventos e eventos no EventBridge.

Monitorar um recurso Elastic Beanstalk com o EventBridge

Com o EventBridge, você pode criar regras que definem ações a serem executadas quando o Elastic Beanstalk emitir eventos para seus recursos. Por exemplo, você pode criar uma regra que envia uma mensagem de e-mail sempre que o status de um ambiente for alterado.

O console do EventBridge tem uma opção de Pre-defined pattern (Padrão predefinido) para criar padrões de eventos do Elastic Beanstalk. Se você selecionar essa opção no console do EventBridge ao criar uma regra, poderá criar um padrão de evento do Elastic Beanstalk rapidamente. Você só precisa selecionar os campos e os valores do evento. Ao fazer seleções, o console constrói e exibe o padrão do evento. Como alternativa, você pode editar manualmente o padrão do evento que você criar e pode salvá-lo como um padrão personalizado. O console também fornece a opção para exibir um Sample Event (Exemplo de evento) detalhado que você pode copiar e colar no padrão de evento que está criando.

Se você preferir digitar ou copiar e colar um padrão de evento no console do EventBridge, poderá optar por usar a opção Padrão personalizado (Padrão personalizado) no console. Ao fazer isso, você não precisará passar pelas etapas de seleção de campos e valores descritos anteriormente. Este tópico oferece exemplos de padrões de correspondência de eventos e eventos do Elastic Beanstalk que você pode usar.

Para criar uma regra para um evento de recurso
  1. Registre-se na AWS usando uma conta que tenha permissões para usar o EventBridge e o Elastic Beanstalk.

  2. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  3. No painel de navegação, escolha Regras.

  4. Escolha Criar Regra.

  5. Informe um Name (Nome) para a regra e, opcionalmente, uma descrição.

  6. Em Event Bus (Barramento de eventos), escolha default (padrão). Quando um serviço da AWS em sua conta emite um evento, ele sempre vai para o barramento de eventos padrão da sua conta.

  7. Em Tipo de Regra, escolha Regra com Padrão de Evento.

  8. Escolha Próximo.

  9. Em Event source, escolha Eventos da AWS ou eventos de parceiro do EventBridge.

  10. (Opcional) Para Exemplo de evento, selecioneEventos da AWS. Insira Elastic Beanstalk no campo de pesquisa. Isso fornecerá uma lista de exemplos de eventos do Elastic Beanstalk que é possível escolher para exibição. Essa etapa simplesmente exibe um exemplo de evento que você pode referenciar. Isso não afeta o resultado da criação da regra. A seção Eventos demonstrativos do Elastic Beanstalk mais adiante neste tópico fornecerá exemplos do mesmo tipo de evento.

  11. Na seção Event patter (Padrão de evento), selecione Event pattern form (Formulário de padrão de evento).

    nota

    Se você já tiver texto para um padrão de evento e não precisar do console do EventBridge para criá-lo, selecione Custom pattern (JSON editor) (Padrão personalizado - Editor JSON). Você pode inserir manualmente ou copiar e colar texto na caixa Event pattern (Padrão de evento). Selecione Next (Seguinte) e acesse a etapa sobre como inserir um destino.

  12. Em Fonte do evento, selecione Serviços da AWS.

  13. Em Serviço da AWS, selecione Elastic Beanstalk.

  14. Em Event type (Tipo de evento), selecione Status Change (Alteração de status).

  15. Essa etapa aborda como você pode trabalhar com os campos de evento detail type (tipo de detalhe), statuse severity (gravidade) do Elastic Beanstalk. À medida que você escolhe esses campos e os valores que deseja corresponder, o console cria e exibe o padrão do evento.

    • Se você selecionar somente um valor para Tipos de detalhes específicos, poderá escolher um ou mais valores para o próximo campo na hierarquia.

    • Se você escolher mais de um valor para Tipos de detalhes específicos, não escolha valores específicos para os próximos campos na hierarquia. Isso evita uma lógica de correspondência ambígua entre campos no seu padrão de evento.

    O campo de evento environment (ambiente) não é afetado por essa hierarquia. Portanto, ele é exibido conforme descrito na próxima etapa.

  16. Para o ambiente, selecione Any environment (Qualquer ambiente) ou Specific environment(s) (Ambientes específicos).

    • Se você selecionar Specific environment(s) (Ambientes específicos), poderá escolher um ou mais ambientes na lista suspensa. O EventBridge adiciona todos os ambientes que você seleciona dentro da lista EnvironmentName[ ] na seção detail (detalhe) do padrão de evento. Em seguida, sua regra filtra todos os eventos para incluir apenas os ambientes específicos que você escolher.

    • Se você selecionar Any environment (Qualquer ambiente), nenhum ambiente será adicionado ao seu padrão de evento. Por isso, sua regra não filtra qualquer dos eventos do Elastic Beanstalk com base no ambiente.

  17. Escolha Next (Avançar).

  18. Em Tipos de destino, escolha Serviço da AWS.

  19. Em Select a target (Selecionar um destino), escolha a ação de destino a ser executada quando um evento de alteração de estado de recurso for recebido do Elastic Beanstalk.

    Por exemplo, é possível usar um tópico do Amazon Simple Notification Service (SNS) para enviar um e-mail ou mensagem de texto quando ocorrer um evento. Para fazer isso, você precisa criar um tópico do Amazon SNS usando o console do Amazon SNS. Para saber mais, consulte Usar o Amazon SNS para notificações de usuários.

    Importante

    Algumas ações de destino podem exigir o uso de outros serviços e gerar cobranças adicionais, como o Amazon SNS ou o serviço Lambda. Para obter mais informações sobre os preços da AWS, consulte https://aws.amazon.com/pricing/. Alguns serviços fazem parte do nível de uso gratuito da AWS. Se for um cliente novo, você pode testar esses serviços gratuitamente. Consulte https://aws.amazon.com/free/ Para mais informações.

  20. (Opcional) Escolha Add another target (Adicionar outro destino) para especificar uma ação de destino adicional para a regra de evento.

  21. Escolha Próximo.

  22. (Opcional) Insira uma ou mais tags para a regra. Para mais informações, consulte Tags Amazon EventBridge em Guia de Usuário Amazon EventBridge.

  23. Escolha Next (Próximo).

  24. Analise os detalhes da regra e selecione Criar regra.

Eventos demonstrativos de padrões de eventos do Elastic Beanstalk

Os padrões de eventos têm a mesma estrutura que os eventos aos quais correspondem. O padrão menciona os campos com os quais você deseja fazer a correspondência e fornece os valores que você está procurando.

  • Health status change (Alteração de estado de integridade) para todos os ambientes

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Health status change" ] }
  • Health status change (Alteração do estado de integridade) para os seguintes ambientes: myEnvironment1 e myEnvironment2. Esse padrão de evento filtra para esses dois ambientes específicos, enquanto o exemplo anterior de Health status change (Alteração do estado de integridade) que não filtra envia eventos para todos os ambientes.

    {"source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Health status change" ], "detail": { "EnvironmentName": [ "myEnvironment1", "myEnvironment2" ] } }
  • Elastic Beanstalk resource status change (Alteração de status do recurso do Elastic Beanstalk) para todos os ambientes

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Elastic Beanstalk resource status change" ] }
  • Elastic Beanstalk resource status change (Alteração de status do recurso do Elastic Beanstalk) com Status a atualização do ambiente falhou e Severity ERRO para os seguintes ambientes: myEnvironment1 e myEnvironment2

    {"source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Elastic Beanstalk resource status change" ], "detail": { "Status": [ "Environment update failed" ], "Severity": [ "ERROR" ], "EnvironmentName": [ "myEnvironment1", "myEnvironment2" ] } }
  • Other resource status change (Alteração de status de outros recursos) para balanceadores de carga, grupos de Auto Scaling e instâncias

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Other resource status change" ] }
  • Managed update status change (Alteração de status de atualização gerenciada) para ambientes

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Managed update status change" ] }
  • Para capturar all events (todos os eventos) do Elastic Beanstalk (exclua a seção detail-type)

    { "source": [ "aws.elasticbeanstalk" ] }

Eventos demonstrativos do Elastic Beanstalk

Veja a seguir um evento demonstrativo do Elastic Beanstalk para uma alteração de status de recurso:

{ "version":"0", "id":"1234a678-1b23-c123-12fd3f456e78", "detail-type":"Elastic Beanstalk resource status change", "source":"aws.elasticbeanstalk", "account":"111122223333", "time":"2020-11-03T00:31:54Z", "region":"us-east-1", "resources":[ "arn:was:elasticbeanstalk:us-east-1:111122223333:environment/myApplication/myEnvironment" ], "detail":{ "Status":"Environment creation started", "EventDate":1604363513951, "ApplicationName":"myApplication", "Message":"createEnvironment is starting.", "EnvironmentName":"myEnvironment", "Severity":"INFO" } }

Veja a seguir um evento demonstrativo do Elastic Beanstalk para uma alteração de status de integridade:

{ "version":"0", "id":"1234a678-1b23-c123-12fd3f456e78", "detail-type":"Health status change", "source":"aws.elasticbeanstalk", "account":"111122223333", "time":"2020-11-03T00:34:48Z", "region":"us-east-1", "resources":[ "arn:was:elasticbeanstalk:us-east-1:111122223333:environment/myApplication/myEnvironment" ], "detail":{ "Status":"Environment health changed", "EventDate":1604363687870, "ApplicationName":"myApplication", "Message":"Environment health has transitioned from Pending to Ok. Initialization completed 1 second ago and took 2 minutes.", "EnvironmentName":"myEnvironment", "Severity":"INFO" } }

Mapeamento de campo de evento do Elastic Beanstalk

A tabela a seguir mapeia os campos de evento do Elastic Beanstalk e seus possíveis valores de string para o campo detail-type do EventBridge. Para obter mais informações sobre como o EventBridge funciona com padrões de eventos para um serviço, consulte Padrões de eventos e eventos no EventBridge.

Campo do EventBridge detail-type Campo do Elastic Beanstalk Status Campo do Elastic Beanstalk Severity (Gravidade) Campo do Elastic Beanstalk Message (Mensagem)

Alteração de status do recurso do Elastic Beanstalk

Criação de ambiente iniciada

INFO

createEnvironment está sendo iniciada.

Criação de ambiente bem-sucedida

INFO

createEnvironment concluída com êxito.

Criação de ambiente bem-sucedida

INFO

Ambiente executado: <Environment Name>. No entanto, houve problemas durante a execução. Consulte o log de eventos para obter detalhes.

Assistente de criação de ambiente

ERRO

Falha ao executar o ambiente.

Atualização do ambiente iniciada

INFO

A atualização do ambiente está sendo iniciada.

Atualização do ambiente bem-sucedida

INFO

Atualização do ambiente concluída com êxito.

Falha na atualização do ambiente

ERRO

Falha ao implantar a configuração.

Encerramento do ambiente iniciado

INFO

terminateEnvironment está sendo iniciado.

Encerramento do ambiente bem-sucedido

INFO

terminateEnvironment concluído com êxito.

Falha no encerramento do ambiente

INFO

A etapa de encerramento do ambiente falhou porque pelo menos um dos fluxos de trabalho de encerramento do ambiente falhou.

Alteração de status de outros recursos

Grupo de Auto Scaling criado

INFO

createEnvironment está sendo iniciada.

Grupo de Auto Scaling excluído

INFO

createEnvironment está sendo iniciada.

Instância adicionada

INFO

Instância adicionada [i-123456789a12b1234] ao ambiente.

Instância removida

INFO

Instância removida [i-123456789a12b1234] do ambiente.

Balanceador de carga criado

INFO

Balanceador de carga criado chamado: <LB Name>

Balanceador de carga excluído

INFO

Balanceador de carga excluído chamado: <LB Name>

Alteração do estado de integridade

A integridade do ambiente mudou

INFO/AVISO

A integridade do ambiente passou para <healthStatus>.

A integridade do ambiente mudou

INFO/AVISO

A integridade do ambiente passou de <healthStatus> para <healthStatus>.

Alteração de status de atualização gerenciada

Atualização gerenciada iniciada

INFO

A atualização da plataforma gerenciada está em andamento.

Falha na atualização gerenciada

INFO

Falha na atualização gerenciada, tentando novamente em%s minutos.