如何使用 Lambda 函数向 Amazon SNS 主题发布消息?

1 分钟阅读
0

我想要从 AWS Lambda 函数向 Amazon Simple Notification Service (Amazon SNS) 主题发布消息。

解决方法

请按照以下步骤使用 Lambda 函数向 Amazon SNS 主题发送消息。

**注意:**本文中的示例使用 Python 运行时系统,但您可以使用首选 Lambda 运行时系统

1.创建 Amazon SNS 主题

2.创建 Lambda 函数

3.在 Lambda 函数中,确保 Lambda 执行角色有权发布类似于以下内容的 SNS 消息:

**注意:**请将 your-regionyour-account-numberyour-topic-name 替换为您的变量。

{
  "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.选择代码选项卡。然后,在代码源中,复制发布 Boto3 操作的以下代码并将其粘贴到代码编辑器中:

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.测试您的 Lambda 函数

如果您的 Lambda 函数连接到 Amazon Virtual Private Cloud (Amazon VPC),请执行以下操作之一:

如果您的 Lambda 函数需要访问互联网,请确保您授予互联网访问权限。有关详细信息,请参阅如何为连接到 Amazon VPC 的 Lambda 函数提供互联网访问权限?

-或者-

对于私有网络,请在同一 VPC 中为 Amazon SNS 创建 Amazon VPC 端点。有关详细信息,请参阅为 Amazon SNS 创建 Amazon VPC 端点

相关信息

当我尝试将 Lambda 函数订阅到 Amazon SNS 主题时,为什么会出现授权错误?

AWS 官方
AWS 官方已更新 1 年前