Quero personalizar a linha de assunto de e-mail padrão "Mensagem de notificação da AWS" do Amazon Simple Notification Service (Amazon SNS) para uma notificação do Amazon EventBridge.
Breve descrição
O Amazon SNS recebe notificações de uma regra do EventBridge criada com os serviços da AWS como origem de eventos para entrega por e-mail. Não é possível alterar diretamente a linha de assunto do e-mail Mensagem de Notificação da AWS se algum serviço da AWS acionar o tópico do Amazon SNS que tem a assinatura de e-mail.
Resolução
Crie uma função do AWS Lambda para personalizar a linha de assunto padrão do e-mail. É possível usar o Lambda em vez do tópico do Amazon SNS como destino da regra do EventBridge. Em seguida, use a função do Lambda para publicar mensagens com linha de assunto de e-mail personalizado para o tópico do Amazon SNS com os assinantes.
Criar um tópico do SNS e uma assinatura de e-mail
Crie um tópico do SNS e, em seguida, crie uma assinatura de e-mail.
Criar um perfil do IAM para a função do Lambda
Para criar um perfil do AWS Identity and Access Management (AWS IAM) para a função do Lambda, conclua as seguintes etapas:
- Abra o console do IAM.
- No painel de navegação, escolha Perfis e depois Criar perfil.
- Escolha a lista suspensa Serviço ou caso de uso, escolha Lambda e, em seguida, Avançar.
- Na página Adicionar permissões, anexe as políticas AWSLambdaBasicExecutionRole and AmazonSNSFullAccess ao perfil e escolha Avançar.
Importante: a política gerenciada AmazonSNSFullAccess fornece acesso total ao Amazon SNS. É uma prática recomendada seguir o princípio de privilégio mínimo.
- Em Nome do perfil, insira um nome para o perfil e escolha Criar perfil.
Crie a função do Lambda
Conclua as etapas a seguir:
-
Abra a página Funções do console do Lambda.
-
Escolha Criar função.
-
Selecione Criar do zero.
-
Em Nome da função, insira um nome para a função.
-
Escolha a lista suspensa Runtime e selecione Python 3.13.
-
Expanda Alterar perfil de execução padrão e escolha Usar um perfil existente.
-
Escolha a lista suspensa Perfil existente e, em seguida, escolha o perfil que você criou anteriormente.
-
Escolha Criar função.
-
No editor de código da função, insira o seguinte trecho de código em Python:
import boto3
import json
sns_arn = "sns_topic_arn"
def lambda_handler(event, context):
client = boto3.client("sns")
resp = client.publish(TargetArn=sns_arn, Message=json.dumps(event), Subject="This is the customized subject line")
Observação: substitua sns_topic_arn pelo nome do recurso da Amazon (ARN) do tópico em Criar um tópico do SNS e notificação por e-mail. Substitua "Esta é a linha de assunto personalizada" pela sua própria linha de assunto, entre aspas.
-
Escolha Implantar.
Criar uma regra do EventBridge
Siga estas instruções para criar uma regra do EventBridge.
Observação:
- para a etapa 11 na documentação da AWS, Selecionar um destino, escolha a função do Lambda que você criou anteriormente.
- Forneça a mensagem de carga útil desejada para sua função do Lambda.
Quando a regra do EventBridge é invocada, a função do Lambda faz uma chamada de API publish para o Amazon SNS. Ele encaminha a mensagem da regra do evento e altera a linha de assunto usada para entregar a mensagem. O assinante então recebe o e-mail com a linha de assunto personalizada em sua caixa de correio.
Informações relacionadas
Como uso o Lambda e o Amazon SES para enviar e-mails?