

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

# 使用 Amazon SNS 集成，部署事件重播管道
<a name="deploy-event-replay-pipeline"></a>

本教程说明如何部署[事件重播管道](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline)并为该管道订阅 Amazon SNS 主题。此过程会自动将与管道关联的 Amazon SAM 模板转换为 Amazon CloudFormation 堆栈，然后将该堆栈部署到您的 Amazon Web Services 账户。此过程还会创建和配置构成事件重播管道的资源集，包括一个 Amazon SQS 队列和一个 Lambda 函数。

有关筛选事件的更多信息，请参阅本指南中的 [Amazon SNS 订阅筛选策略](sns-subscription-filter-policies.md)。

1. 登录 [Amazon Lambda 控制台](https://console.amazonaws.cn/lambda/)。

1. 在导航面板上，选择 **Functions (函数)**，然后选择 **Create function (创建函数)**。

1. 在 **Create function (创建函数)** 页面上，执行以下操作：

   1. 依次选择 **Browse serverless app repository（浏览无服务器应用程序存储库）**、**Public applications（公共应用程序）**、**Show apps that create custom roles or resource policies（显示创建 IAM 角色或资源策略的应用程序）**。

   1. 搜索 `fork-event-replay-pipeline`，然后选择该应用程序。

1. 在 **fork-event-replay-pipeline** 页面中，执行以下操作：

   1. 在 **Application settings (应用程序设置)** 部分中，输入 **Application name (应用程序名称)**（例如，`my-app-replay`）。
**注意**  
对于每个部署，应用程序名称必须唯一。如果您重复使用应用程序名称，则部署将仅更新先前部署的 Amazon CloudFormation 堆栈（而不是创建新的堆栈）。

   1. （可选）输入以下**LogLevel**设置之一以执行应用程序的 Lambda 函数：
      + `DEBUG`
      + `ERROR`
      + `INFO`（默认值）
      + `WARNING`

   1. （可选 **ReplayQueueRetentionPeriodInSeconds**）输入 Amazon SQS 重播队列保留消息的时间长度（以秒为单位）。如果您不输入值，则使用 1209600 秒（14 天）。

   1. 对于 **TopicArn**，输入要订阅此分叉管道实例的 Amazon SNS 主题的 ARN。

   1. 对于 **DestinationQueueName**，输入 Lambda 重播函数向其转发消息的 Amazon SQS 队列的名称。

   1. （可选）对于 **SubscriptionFilterPolicy**，输入 JSON 格式的 Amazon SNS 订阅筛选策略，用于筛选传入的事件。筛选策略决定缓冲哪些事件以进行重播。如果您不输入值，则不使用筛选（缓冲所有事件以进行重播）。

   1. 选择 **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (我确认此应用程序创建自定义 IAM 角色和资源策略并部署嵌套应用程序)**，然后选择 **Deploy (部署)**。

在 “**部署状态 {{my-app-replay}}**” 页面上，Lambda 会显示 “**您的应用程序正在部署中**” 状态。

在**资源**部分中， Amazon CloudFormation 开始创建堆栈并显示每个资源的 **CREATE\_IN\_PROGRESS** 状态。该过程完成后， Amazon CloudFormation 将显示 “**创建\_完成**” 状态。

部署完成后，Lambda 将显示 **Your application has been deployed (您的应用程序已部署完成)**状态。

将在由事件重播管道自动预置的 Amazon SQS 索引中缓冲发布到您的 Amazon SNS 主题的消息以进行重播。

**注意**  
默认情况下，禁用重播。要启用重播，请导航到 Lambda 控制台上的函数页面，展开 **Designer** 部分，选择 **SQS** 磁贴，然后在 **SQS** 部分中，选择 **Enabled（启用）**。