Notificações do ambiente do Elastic Beanstalk com o Amazon SNS - 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á.

Notificações do ambiente do Elastic Beanstalk com o Amazon SNS

É possível configurar o ambiente AWS Elastic Beanstalk do Elastic Beanstalk para usar o Amazon Simple Notification Service (Amazon SNS) para notificá-lo sobre eventos importantes que afetam a aplicação. Para receber e-mails da AWS sempre que ocorrer um erro ou a integridade do seu ambiente mudar, especifique um endereço de e-mail durante ou após a criação do ambiente.

nota

O Elastic Beanstalk usa o Amazon SNS para notificações. Para obter informações sobre a definição de preço do Amazon SNS, consulte https://aws.amazon.com/sns/pricing/.

Quando você configura notificações para o seu ambiente, o Elastic Beanstalk cria um tópico do Amazon SNS para ele em seu nome. Para enviar mensagens para um tópico do Amazon SNS, o Elastic Beanstalk precisa ter a permissão necessária. Para obter mais informações, consulte Configurar permissões para enviar notificações.

Quando ocorre um evento notável, o Elastic Beanstalk envia uma mensagem para o tópico. Em seguida, o Amazon SNS retransmite as mensagens recebidas para os assinantes do tópico. Os eventos notáveis incluem erros de criação do ambiente e qualquer alteração na integridade do ambiente e da instância. Eventos para as operações do Amazon EC2 Auto Scaling (como adicionar e remover instâncias do ambiente) e outros eventos informativos não acionam notificações.


      Notificação por e-mail do Amazon SNS

Você pode inserir um endereço de e-mail no console do Elastic Beanstalk quando criar um ambiente ou em outro momento posterior. Isso criará um tópico do Amazon SNS e você estará inscrito nele. O Elastic Beanstalk gerencia o ciclo de vida do tópico e o exclui quando o ambiente é encerrado ou quando você remove seu endereço de e-mail no console de gerenciamento do ambiente.

O namespace do aws:elasticbeanstalk:sns:topics oferece opções para configurar um tópico do Amazon SNS usando arquivos de configuração, uma CLI ou um SDK. Usando um desses métodos, você pode configurar o tipo de assinante e o endpoint. Para o tipo de assinante, você pode escolher uma fila do Amazon SQS ou uma URL HTTP.

Só é possível ativar e desativar notificações do Amazon SNS. A frequência de notificações enviadas ao tópico pode ser alta, dependendo do tamanho e da composição do seu ambiente. Há outras opções para configurar notificações a serem enviadas em circunstâncias específicas. Com o Amazon EventBridge, é possível configurar regras orientadas por eventos que notificam você quando o Elastic Beanstalk emite eventos que atendem a critérios específicos. Ou, alternativamente, você pode configurar o seu ambiente para publicar métricas personalizadas e definir alarmes do Amazon CloudWatch para avisar você quando essas métricas atingirem um limite não íntegro.

Configurar notificações usando o console do Elastic Beanstalk

Você pode inserir um endereço de e-mail no console do Elastic Beanstalk para criar um tópico do Amazon SNS para o seu ambiente.

Como configurar notificações no console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).

  5. Role para baixo até a seção Notificações por e-mail.

  6. Insira um endereço de e-mail.

  7. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Quando você insere um endereço de e-mail para notificações, o Elastic Beanstalk cria um tópico do Amazon SNS para seu ambiente e adiciona uma inscrição. O Amazon SNS envia um e-mail para o endereço inscrito para confirmar a inscrição. Você deve clicar no link do e-mail de confirmação para ativar a inscrição e receber notificações.

Configurar notificações usando opções de configuração

Use as opções no namespace aws:elasticbeanstalk:sns:topics para configurar as notificações do Amazon SNS para o seu ambiente. Você pode definir estas opções usando arquivos de configuração, uma CLI ou um SDK.

  • Endpoint da notificação: o endereço de e-mail, a fila do Amazon SQS ou a URL para enviar as notificações. Definir essa opção cria uma fila do SQS e uma inscrição para o endpoint especificado. Se o endpoint não for um endereço de e-mail, você deve definir também a opção Notification Protocol. O SNS valida o valor de Notification Endpoint de acordo com o valor de Notification Protocol. A configuração dessa opção várias vezes cria inscrições adicionais no tópico. Se você remover esta opção, o tópico será excluído.

  • Protocolo de notificação: protocolo usado para enviar notificações ao Notification Endpoint. Essa opção usa como valor padrão email. Defina essa opção como email-json para enviar e-mails em formato JSON, http ou https para publicar notificações no formato JSON em um endpoint HTTP, ou sqs para enviar notificações para uma fila do SQS.

    nota

    Notificações do AWS Lambda não são suportadas.

  • ARN do tópico de notificação ARN: depois de definir um endpoint de notificação para seu ambiente, leia esta configuração para obter o ARN do tópico do SNS. Você também pode definir esta opção para usar um tópico do SNS existente para notificações. Um tópico anexado ao seu ambiente por meio dessa opção não é excluído quando ela é alterada ou se o ambiente for encerrado.

    Para configurar as notificações do Amazon SNS, você precisa ter as permissões necessárias. Se o seu usuário do IAM usar a política de usuário gerenciado AdministratorAccess-AWSElasticBeanstalk do Elastic Beanstalk, é provável que você já tenha as permissões necessárias para configurar o tópico padrão do Amazon SNS que o Elastic Beanstalk cria para o seu ambiente. Contudo, se você configurar um tópico do Amazon SNS não gerenciado pelo Elastic Beanstalk, será necessário adicionar a política a seguir à sua função de usuário.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:SetTopicAttributes", "sns:GetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }
  • Nome do tópico de identificação: defina esta opção para personalizar o nome do tópico do Amazon SNS usado para notificações de ambiente. Se já houver um tópico com o mesmo nome, o Elastic Beanstalk anexará o tópico ao ambiente.

    Atenção

    Se você anexar um tópico do SNS existente a um ambiente com Notification Topic Name, o Elastic Beanstalk excluirá o tópico quando você encerrar o ambiente ou alterar essa configuração futuramente.

    Se você alterar essa opção, o Notification Topic ARN também será alterado. Se um tópico já está conectado ao ambiente, o Elastic Beanstalk exclui o antigo e cria um novo tópico e assinatura.

    Ao usar um nome de tópico personalizado, você também deve fornecer um ARN de um tópico personalizado criado externamente. A política de usuário gerenciado não detecta automaticamente um tópico com um nome personalizado, portanto, você deve fornecer permissões personalizadas do Amazon SNS aos usuários do IAM. Use uma política semelhante à que foi utilizada para um ARN de tópico personalizado, mas faça as inclusões a seguir:

    • Inclua mais duas ações na lista de Actions, especificamente: sns:CreateTopic, sns:DeleteTopic

    • Se estiver alterando o nome Notification Topic Name de um tópico personalizado para outro, você também deve incluir os ARNs de ambos os tópicos na lista Resource. Com alternativa, inclua uma expressão regular que abranja ambos os tópicos. Dessa maneira, o Elastic Beanstalk tem permissões para excluir o tópico antigo e criar o novo.

A CLI do EB e o console do Elastic Beanstalk aplicam os valores recomendados para as opções anteriores. Se quiser usar arquivos de configuração para definir a mesma coisa, você precisa remover essas configurações. Para mais detalhes, consulte Valores recomendados.

Configurar permissões para enviar notificações

Esta seção discute considerações de segurança relacionadas a notificações que utilizam o Amazon SNS. Há dois casos distintos:

  • Use o tópico padrão do Amazon SNS criado pelo Elastic Beanstalk para o seu ambiente.

  • Forneça um tópico externo do Amazon SNS por meio de opções de configuração.

A política de acesso padrão para tópicos do Amazon SNS permite que apenas o proprietário do tópico publique nele ou assine ele. Contudo, com a configuração de política adequada, o Elastic Beanstalk pode receber permissão para publicar em um tópico do Amazon SNS em um dos dois casos descritos nesta seção. As subseções a seguir fornecem mais informações.

Permissões para um tópico padrão

Quando você configura notificações para o ambiente, o Elastic Beanstalk cria um tópico do Amazon SNS para ele. Para enviar mensagens para um tópico do Amazon SNS, o Elastic Beanstalk precisa ter a permissão necessária. Se o seu ambiente usa a função de serviço que o console do Elastic Beanstalk ou a CLI do EB geraram para ele, ou a função vinculada ao serviço de monitoramento da sua conta, você não precisará fazer mais nada. Essas funções gerenciadas incluem a permissão necessária que permite que o Elastic Beanstalk envie mensagens para o tópico do Amazon SNS.

No entanto, se você tiver fornecido uma função de serviço personalizada ao criar o seu ambiente, certifique-se de que ela inclui a política a seguir.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:ElasticBeanstalkNotifications*" ] } ] }

Permissões para um tópico externo

O Configurar notificações usando opções de configuração explica como substituir o tópico do Amazon SNS que o Elastic Beanstalk fornece por outro tópico do Amazon SNS. Se você substituiu o tópico, o Elastic Beanstalk deverá verificar se você tem permissão para publicar neste tópico do SNS para poder associar o tópico do SNS ao ambiente. Você deve ter sns:Publish. A função de serviço usa a mesma permissão. Para verificar se esse é o caso, o Elastic Beanstalk envia uma notificação de teste ao SNS como parte da sua ação para criar ou atualizar o ambiente. Se este teste falhar, sua tentativa de criar ou atualizar o ambiente também falhará. O Elastic Beanstalk exibe uma mensagem que explica o motivo dessa falha.

Se você fornecer uma função de serviço personalizada para o seu ambiente, certifique-se de que a sua função de serviço personalizada inclua a política a seguir para permitir que o Elastic Beanstalk envie mensagens para o tópico do Amazon SNS. No código a seguir, substitua sns_topic_name pelo nome do tópico do Amazon SNS fornecido nas opções de configuração.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }

Para obter mais informações sobre o controle de acesso do Amazon SNS, consulte Casos de exemplo para o controle de acesso do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.