Como personalizo as mensagens de e-mail padrão do Amazon SNS?

4 minuto de leitura
0

Quero modificar a linha de assunto padrão "Mensagem de notificação da AWS" do e-mail 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 fonte de eventos para entrega por e-mail. Observe que a linha de assunto "Mensagem de notificação da AWS" e o corpo do e-mail são fixos. Você não poderá alterá-los diretamente se algum serviço da AWS acionar o tópico do Amazon SNS que tem a assinatura de e-mail.

Fluxo de trabalho

  1. Um evento aciona uma regra do EventBridge.
  2. A carga útil da regra do EventBridge invoca a função do Lambda.
  3. A função do Lambda chama a API Publish do Amazon SNS.
  4. O Amazon SNS entrega uma mensagem ou notificação por e-mail com o "Assunto" e o "corpo" personalizados.

Resolução

Inclua o AWS Lambda na arquitetura para personalizar a linha de assunto e o corpo da mensagem padrão do e-mail, conforme necessário. Você pode usar o AWS 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 assunto e corpo de e-mail personalizados para o tópico do Amazon SNS com os assinantes.

Siga estas etapas para personalizar a notificação.

Criar um tópico do SNS e uma assinatura de e-mail

  1. Crie um tópico do SNS.
  2. Crie uma assinatura de e-mail.

Criar a função do Lambda

  1. Abra a página Funções do console do Lambda.

  2. Escolha Criar função.

  3. Selecione Criar do zero.

  4. Forneça o Nome da função e selecione o runtime como Python 3.10.

  5. Crie um Perfil de execução. Esse perfil deve ter as permissões necessárias para publicar o tópico do SNS especificado. Aqui, sua função do Lambda foi criada com a política gerenciada pela AWS para o Lambda.

  6. Anexe as políticas AWSLambdaBasicExecutionRole e AmazonSNSFullAccess ao perfil de execução da função. Para anexar a política de execução do Lambda, consulte Perfil de execução do Lambda.

  7. Escolha Criar função. No Editor de código da função, cole este código:
    Importante: este trecho de código é apenas para referência. Não use trechos de código de exemplo em seu ambiente de produção antes de testá-lo.

    Exemplo: Código de exemplo 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 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.

  8. Escolha Implantar.

Criar uma regra do EventBridge

Crie uma regra do EventBridge usando o console do Amazon EventBridge.

Observação:

  • para a etapa 11 na documentação da AWS, Selecionar um destino, escolha a função do Lambda que você criou em Criar uma função do Lambda.
  • 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 enquanto muda o assunto usado para entregar essa mensagem. O assinante então recebe o e-mail com a linha de assunto personalizada em sua caixa de correio.

Informações relacionadas

Por que não consigo receber notificações por e-mail do meu tópico do Amazon SNS?

Por que recebi um e-mail da AWS comunicando que minha assinatura do Amazon SNS foi desativada manualmente?

Como faço para evitar que os destinatários da lista de correspondência cancelem a assinatura de todos na lista dos meus e-mails de tópicos do Amazon SNS?

Por que não recebi uma notificação do SNS quando meu alarme do Amazon CloudWatch foi acionado?

Como faço para enviar e-mails usando o Lambda e o Amazon Simple Email Service (Amazon SES)?

AWS OFICIAL
AWS OFICIALAtualizada há 9 meses