部署和订阅事件存储与备份管道 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

部署和订阅事件存储与备份管道

对于事件存档和分析,亚马逊 SNS 现在建议使用其与亚马逊 Data Firehose 的原生集成。您可以将 Firehose 传输流订阅 SNS 主题,这样您就可以向存档和分析终端节点发送通知,例如亚马逊简单存储服务 (Amazon S3) 存储桶、亚马逊 Redshift 表、亚马逊 OpenSearch 服务(服务)等。OpenSearch 将 Amazon SNS 与 Firehose 传输流配合使用是一种完全托管且无需代码的解决方案,您无需使用任何功能。Amazon Lambda有关更多信息,请参阅Fanout 到 Firehose 传送直播

本教程说明如何部署事件存储与备份管道并为该管道订阅 Amazon SNS 主题。此过程自动将与管道关联的 Amazon SAM 模板转换为 Amazon CloudFormation 堆栈,然后将该堆栈部署到您的Amazon Web Services 账户。此过程还会创建和配置构成事件存储与备份管道的资源集,包括以下内容:

  • Amazon SQS 队列

  • Lambda 函数

  • Firehose 传输流

  • Amazon S3 备份存储桶

有关配置以 S3 存储桶作为目标的流的更多信息,请参阅 Amazon Data Firehose API 参考S3DestinationConfiguration中的。

有关转换事件以及配置事件缓冲、事件压缩和事件加密的更多信息,请参阅《Amazon Data Fire hose 开发者指南》中的创建亚马逊数据 Firehose 传输流。

有关筛选事件的更多信息,请参阅本指南中的 Amazon SNS 订阅筛选策略

  1. 登录 Amazon Lambda 控制台

  2. 在导航面板上,选择 Functions (函数),然后选择 Create function (创建函数)

  3. Create function (创建函数) 页面上,执行以下操作:

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

    2. 搜索 fork-event-storage-backup-pipeline,然后选择该应用程序。

  4. fork-event-storage-backup-pipelin e 页面上,执行以下操作:

    1. Application settings (应用程序设置) 部分中,输入 Application name (应用程序名称)(例如,my-app-backup)。

      注意
      • 对于每个部署,应用程序名称必须唯一。如果您重用应用程序名称,则部署将仅更新之前部署的 Amazon CloudFormation 堆栈(而不是创建新堆栈)。

    2. (可选)对于 BucketArn,请输入加载传入事件的 S3 存储桶的 ARN。如果您不输入值,则在 Amazon 账户中创建新的 S3 存储桶。

    3. (可选)对于 DataTransformationFunctionArn,输入用于转换传入事件的 Lambda 函数的 ARN。如果您不输入值,则将禁用数据转换。

    4. (可选)输入以下LogLevel设置之一以执行应用程序的 Lambda 函数:

      • DEBUG

      • ERROR

      • INFO(默认值)

      • WARNING

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

    6. (可选)对于StreamBufferingIntervalInSecondsStreamBufferingSizeInMB,输入用于配置传入事件缓冲的值。如果您不输入任何值,则使用 300 秒和 5 MB。

    7. (可选)输入以下StreamCompressionFormat设置之一以压缩传入的事件:

      • GZIP

      • SNAPPY

      • UNCOMPRESSED(默认值)

      • ZIP

    8. (可选)对于 StreamPrefix,输入字符串前缀以命名存储在 S3 备份存储桶中的文件。如果您不输入值,则不使用任何前缀。

    9. (可选)对于 SubscriptionFilterPolicy,输入 JSON 格式的 Amazon SNS 订阅筛选策略,用于筛选传入的事件。筛选策略决定在 OpenSearch 服务索引中对哪些事件进行索引。如果您不输入值,则不使用筛选(为所有事件编制索引)。

    10. (可选)对于 SubscriptionFilterPolicyScope,输入字符串MessageBodyMessageAttributes以启用基于负载或基于属性的邮件筛选。

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

Deployment status for my-app(my-app 的部署状态)页面上,Lambda 显示 Your application is being deployed(正在部署您的应用程序)状态。

Resources (资源) 部分中,Amazon CloudFormation 开始创建堆栈并显示每个资源的 CREATE_IN_PROGRESS 状态。在此过程完成后,Amazon CloudFormation 将显示 CREATE_COMPLETE 状态。

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

发布到您的 Amazon SNS 主题的消息将存储在由事件存储与备份管道自动预置的 S3 备份存储桶中。