Ir para o conteúdo

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

3 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 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:

  1. Abra o console do Amazon SNS.

  2. Crie um tópico do Amazon SNS.

  3. Na página de detalhes, copie o nome do recurso da Amazon (ARN) para usar em uma etapa posterior.

  4. Abra o console do Lambda.

  5. Criar uma função do Lambda.

  6. 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.

  7. Selecione Implantar.

  8. Selecione a guia Configuração e, em seguida, Permissões.

  9. Escolha Nome do perfil, selecione Adicionar permissões e, em seguida, Criar política em linha.

  10. 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?

AWS OFICIALAtualizada há 7 meses