

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Amazon SNS 通知扇出到 Lambda 函数以进行自动处理
<a name="sns-lambda-as-subscriber"></a>

亚马逊 SNS 与集成 AWS Lambda，允许您触发 Lambda 函数以响应亚马逊 SNS 通知。将消息发布到 函数订阅的 SNS 主题时，将使用已发布消息的负载调用 Lambda 函数。Lambda 函数将消息负载作为输入参数接收，可以操作消息中的信息，将消息发布到其他 SNS 主题或将消息发送到其他服务。 AWS 

此外，Amazon SNS 还支持针对发送到 Lambda 终端节点的消息通知的消息传输状态属性。有关更多信息，请参阅 [Amazon SNS 消息传输状态](sns-topic-attributes.md)。

**Topics**
+ [先决条件](lambda-prereq.md)
+ [将函数订阅到主题](lambda-console.md)

# 跨区域将 Amazon SNS 与 Lambda 函数集成的先决条件
<a name="lambda-prereq"></a>

要使用 Amazon SNS 通知调用 Lambda 函数，您需要以下信息：
+ Lambda 函数
+ 一个 Amazon SNS 主题

有关创建 Lambda 函数以与 Amazon SNS 结合使用的信息，请参阅[将 Lambda 与 Amazon SNS 结合使用](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html)。有关创建 Amazon SNS 主题的信息，请参阅[创建主题](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。

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

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

**注意**  
AWS 不支持从默认启用的区域向 Lambda 跨区域交付到可选区域。此外，也不支持将 SNS 消息从选择加入区域到其他选择加入区域的跨区域转发。

# 将 Lambda 函数订阅到 Amazon SNS 主题
<a name="lambda-console"></a>

本主题介绍如何将 Lambda 函数订阅到 Amazon SNS 主题，从而使该函数能够由已发布的消息触发。

1. 登录 [Amazon SNS 控制台](https://console.aws.amazon.com/sns/home)。

1. 在导航面板上，选择**主题**。

1. 在**主题** 页上，选择一个主题。

1. 在**订阅**部分中，选择**创建订阅**。

1. 在**创建订阅**页上的**详细信息**部分，执行以下操作：

   1. 验证所选**主题 ARN**。

   1. 对于**协议**，请选择 AWS Lambda。

   1. 对于**终端节点**，输入函数的 ARN。

   1. 选择**创建订阅**。

将消息发布到 函数订阅的 SNS 主题时，将使用已发布消息的负载调用 Lambda 函数。有关如何使用 AWS Lambda 亚马逊 SNS 的信息（包括教程），请参阅[使用 Amazon SN AWS Lambda S](https://docs.aws.amazon.com/lambda/latest/dg/with-sns.html)。