通过将 AWS Lambda 函数作为订阅者来使用 Amazon SNS 进行系统到系统消息收发 - Amazon Simple Notification Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

通过将 AWS Lambda 函数作为订阅者来使用 Amazon SNS 进行系统到系统消息收发

Amazon SNS 和 AWS Lambda 集成在一起,因此您可以使用 Amazon SNS 通知调用 Lambda 函数。将消息发布到 Lambda 函数订阅的 SNS 主题时,将使用已发布消息的负载调用 Lambda 函数。Lambda 函数接收消息负载作为输入参数,可以操作消息中的信息、将消息发布到其他 SNS 主题或向其他 AWS 服务发送消息。

此外,Amazon SNS 还支持针对发送到 Lambda 终端节点的消息通知的消息传输状态属性。有关更多信息,请参阅Amazon SNS 消息传输状态

先决条件

要使用 Amazon SNS 通知调用 Lambda 函数,您需要以下信息:

  • Lambda 函数

  • Amazon SNS 主题

有关创建要与 Amazon SNS 结合使用的 Lambda 函数的信息,请参阅将 Lambda 与 Amazon SNS 结合使用。有关创建 Amazon SNS 主题的信息,请参阅创建主题

当您使用 Amazon SNS 将消息从选择加入区域传送到默认启用的区域时,您必须通过将委托人 sns.amazonaws.com 替换为 sns.<opt-in-region>.amazonaws.com 来更改在 AWS Lambda 函数中创建的策略。

例如,如果您希望为美国东部(弗吉尼亚北部)的 AWS Lambda 函数订阅亚太地区(香港)的 SNS 主题,请将 AWS Lambda 函数策略中的委托人更改为 sns.ap-east-1.amazonaws.com。选择加入的区域包括 2019 年 3 月 20 日之后推出的任何区域,包括亚太地区(香港)、中东(巴林)、欧盟(米兰)和非洲(开普敦)。2019 年 3 月 20 日之前推出的区域默认情况下处于启用状态。

注意

我们不支持从默认启用的区域到选择加入区域的跨区域交付到 AWS Lambda。此外,也不支持将 SNS 消息从选择加入区域到其他选择加入区域的跨区域转发。

使用 AWS 管理控制台通过 Lambda 终端节点配置 Amazon SNS

  1. 登录到 Amazon SNS 控制台

  2. 在导航面板上,选择主题

  3. 主题 页上,选择一个主题。

  4. 订阅部分中,选择创建订阅

  5. 创建订阅页上,在详细信息部分中,执行以下操作:

    1. 验证所选主题 ARN

    2. 对于协议,选择 AWS Lambda。

    3. 对于终端节点,输入函数的 ARN。

    4. 选择创建订阅

将消息发布到 Lambda 函数订阅的 SNS 主题时,将使用已发布消息的负载调用 Lambda 函数。有关如何将 AWS Lambda 与 Amazon SNS 一起使用的信息(包括教程),请参阅将 AWS Lambda 与 Amazon SNS 结合使用