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 usar uma função do Lambda para enviar uma mensagem a um tópico do Amazon SNS.
Observação: o exemplo neste artigo usa um runtime Python, mas também é possível usar seus runtimes do Lambda preferidos.
Conclua as etapas a seguir:
-
Abra o console do Amazon SNS.
-
Crie um tópico do Amazon SNS.
-
Na página de detalhes, copie o nome do recurso da Amazon (ARN) para usar em uma etapa posterior.
-
Abra o console do Lambda.
-
Criar uma função do Lambda.
-
Na página Funções do Lambda, escolha a guia Código. Em seguida, em Código fonte, copie e cole o seguinte código para a ação 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:your-sns-topic-arn',Message="Test message")
print("Message published")
return(response)
Observação: substitua your-sns-topic-arn pelo ARN do tópico do Amazon SNS que você copiou em uma etapa anterior.
-
Selecione Implantar.
-
Selecione a guia Configuração e, em seguida, Permissões.
-
Escolha Nome do perfil, selecione Adicionar permissões e, em seguida, Criar política em linha.
-
Escolha a guia JSON e insira a seguinte política do AWS Identity and Access Management (AWS IAM):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublishSNSMessage",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:your-sns-topic-arn"
}
]
}
Observação: substitua your-sns-topic-arn pelo ARN do tópico do Amazon SNS que você copiou em uma etapa anterior.
11. Selecione Avançar e, em seguida, Criar política.
Se a sua função do Lambda estiver conectada a uma Amazon Virtual Private Cloud (Amazon VPC), faça o seguinte:
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?