Como posso publicar uma mensagem em um tópico do Amazon SNS usando uma função do Lambda?

2 minuto de leitura
0

Quero publicar uma mensagem em um tópico do Amazon Simple Notification Service (Amazon SNS) a partir de uma função do AWS Lambda.

Resolução

Siga estas etapas para enviar uma mensagem a um tópico do Amazon SNS usando uma função do Lambda.

Observação: o exemplo neste artigo usa um runtime Python, mas você pode usar seus runtime do Lambda preferidos.

1.    Crie um tópico do Amazon SNS.

2.    Crie uma função do Lambda.

3.    Na função do Lambda, certifique-se de que a função de execução do Lambda tenha permissões para publicar a mensagem do SNS semelhante à seguinte:

Observação: substitua your-region, your-account-number e your-topic-name pelas suas variáveis.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublishSNSMessage",
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:<your-region>:<your-account-number>:<your-topic-name>"
    }
  ]
}

4.    Escolha a guia Code (Código). Em seguida, em Code source (Código fonte), copie e cole o seguinte código para a ação Publish Boto3 (Publicar Boto3) no editor de código:

import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
   response = client.publish(TopicArn='arn:aws:sns:<region>:<account-number>:<topic-name>',Message="Test message")
   print("Message published")
   return(response)

5.    Teste sua função do Lambda.

Se a sua função do Lambda estiver conectada a uma Amazon Virtual Private Cloud (Amazon VPC), faça o seguinte:

Se a sua função do Lambda exigir acesso à Internet, certifique-se de conceder acesso à Internet. Para obter mais informações, consulte Como conceder acesso à Internet para uma função do Lambda conectada a uma Amazon VPC?

-ou-

Para redes privadas, crie um endpoint da Amazon VPC para o Amazon SNS na mesma VPC. Para obter mais informações, consulte Criar endpoint da Amazon VPC para o Amazon SNS.

Informações relacionadas

Por que recebo um erro de autorização quando tento inscrever minha função do Lambda no meu tópico do Amazon SNS?

AWS OFICIAL
AWS OFICIALAtualizada há um ano