跳至内容

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

1 分钟阅读
0

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

解决方法

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

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

完成以下步骤:

  1. 打开 Amazon SNS 控制台

  2. 创建 Amazon SNS 主题

  3. 在详细信息页面上,复制 Amazon 资源名称 (ARN) 以供后续步骤使用。

  4. 打开 Lambda 控制台

  5. 创建 Lambda 函数

  6. 在 Lambda Functions(函数)页面上,选择 Code(代码)选项卡。然后,在 Code source(代码源)中,复制发布 boto3 操作的以下代码并将其粘贴到代码编辑器中:

    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)

    注意:your-sns-topic-arn 替换为您在上一步中复制的 Amazon SNS 主题 ARN。

  7. 选择 Deploy(部署)。

  8. 选择 Configuration(配置)选项卡,然后选择 Permissions(权限)。

  9. 选择 Role name(角色名称),再选择 Add permissions(添加权限),然后选择 Create inline policy(创建内联策略)。

  10. 选择 JSON 选项卡,然后输入以下 AWS Identity and Access Management (IAM) 策略:

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

注意:your-sns-topic-arn 替换为您在上一步中复制的 Amazon SNS 主题 ARN。 11. 选择 Next(下一步),然后选择 Create policy(创建策略)。

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

相关信息

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

AWS 官方已更新 5 个月前