本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
订阅事件搜索与分析管道并将其部署到 Amazon SNS
对于事件归档和分析,Amazon SNS 现在建议使用其与 Amazon Data Firehose 的本机集成。您可以将 Firehose 传输流订阅 SNS 主题,这样您就可以向存档和分析终端节点发送通知,例如亚马逊简单存储服务 (Amazon S3) 存储桶、亚马逊 Redshift 表、亚马逊 OpenSearch 服务(服务)等。OpenSearch 将 Amazon SNS 与 Firehose 传输流配合使用是一种完全托管且无需代码的解决方案,您无需使用任何功能。 AWS Lambda 有关更多信息,请参阅 扇出到 Firehose 传输流。 |
本教程说明如何部署事件搜索与分析管道并为该管道订阅 Amazon SNS 主题。此过程会自动将与管道关联的 AWS SAM 模板转换为 AWS CloudFormation 堆栈,然后将该堆栈部署到您的 AWS 账户。此过程还会创建和配置构成事件搜索与分析管道的资源集,包括以下内容:
-
Amazon SQS 队列
-
Lambda 函数
-
Firehose 传输流
-
亚马逊 OpenSearch 服务域名
-
Amazon S3 死信存储桶
有关将流配置为以索引作为目标的更多信息,请参阅《Amazon Data Firehose API Reference》中的 ElasticsearchDestinationConfiguration
。
有关转换事件以及配置事件缓冲、事件压缩和事件加密的详细信息,请参阅《Amazon Data Firehose 开发人员指南》中的创建 Amazon Data Firehose 传输流。
有关筛选事件的更多信息,请参阅本指南中的 Amazon SNS 订阅筛选策略。
-
登录 AWS Lambda 控制台
。 -
在导航面板上,选择 Functions (函数),然后选择 Create function (创建函数)。
-
在 Create function (创建函数) 页面上,执行以下操作:
-
依次选择 Browse serverless app repository(浏览无服务器应用程序存储库)、Public applications(公共应用程序)、Show apps that create custom roles or resource policies(显示创建 IAM 角色或资源策略的应用程序)。
-
搜索
fork-event-search-analytics-pipeline
,然后选择该应用程序。
-
-
在 fork-event-search-analytics-pipelin e 页面上,执行以下操作:
-
在 Application settings (应用程序设置) 部分中,输入 Application name (应用程序名称)(例如,
my-app-search
)。注意
对于每个部署,应用程序名称必须唯一。如果您重复使用应用程序名称,则部署将仅更新先前部署的 AWS CloudFormation 堆栈(而不是创建新的堆栈)。
-
(可选)对于 DataTransformationFunctionArn,输入用于转换传入事件的 Lambda 函数的 ARN。如果您不输入值,则将禁用数据转换。
-
(可选)输入以下LogLevel设置之一以执行应用程序的 Lambda 函数:
-
DEBUG
-
ERROR
-
INFO
(默认值) -
WARNING
-
-
(可选)对于 SearchDomainArn,输入 OpenSearch 服务域的 ARN,即配置所需计算和存储功能的集群。如果您不输入值,则使用默认配置创建新域。
-
对于 TopicArn,输入要订阅此分叉管道实例的 Amazon SNS 主题的 ARN。
-
对于 SearchIndexName,输入用于事件搜索和分析的 OpenSearch 服务索引的名称。
注意
以下配额适用于索引名称:
-
不能包含大写字母
-
不能包含以下字符:
\ / * ? " < > | ` , #
-
不能以下列字符开头:
- + _
-
不能为以下内容:
. ..
-
长度不能超过 80 个字符
-
长度不能超过 255 个字节
-
不能包含冒号(来自 OpenSearch 服务 7.0)
-
-
(可选)为 OpenSearch 服务索引的轮换周期输入以下SearchIndexRotationPeriod设置之一:
-
NoRotation
(默认值) -
OneDay
-
OneHour
-
OneMonth
-
OneWeek
索引轮换将时间戳附加到索引名称,从而促进旧数据的到期。
-
-
对于 SearchTypeName,输入用于在索引中组织事件的 OpenSearch 服务类型的名称。
注意
-
OpenSearch 服务类型名称可以包含任何字符(空字节除外),但不能以开头
_
。 -
对于 S OpenSearch ervice 6.x,每个索引只能有一个类型。如果您为具有其他类型的现有索引指定新类型,Firehose 会返回运行时错误。
-
-
(可选)对于StreamBufferingIntervalInSeconds和 StreamBufferingSizeInMBs,输入用于配置传入事件缓冲的值。如果您不输入任何值,则使用 300 秒和 5 MB。
-
(可选)输入以下StreamCompressionFormat设置之一以压缩传入的事件:
-
GZIP
-
SNAPPY
-
UNCOMPRESSED
(默认值) -
ZIP
-
-
(可选)对于 StreamPrefix,输入字符串前缀以命名存储在 Amazon S3 死信存储桶中的文件。如果您不输入值,则不使用任何前缀。
-
(可选)对于 StreamRetryDurationInSecons,输入 Firehose 无法索引服务索引中的 OpenSearch 事件时的重试持续时间。如果您不输入值,则使用 300 秒。
-
(可选)对于 SubscriptionFilterPolicy,输入 JSON 格式的 Amazon SNS 订阅筛选策略,用于筛选传入的事件。筛选策略决定在 OpenSearch 服务索引中对哪些事件进行索引。如果您不输入值,则不使用筛选(为所有事件编制索引)。
-
选择 I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (我确认此应用程序创建自定义 IAM 角色和资源策略并部署嵌套应用程序),然后选择 Deploy (部署)。
-
在 “部署状态 my-app-search
” 页面上,Lambda 会显示 “您的应用程序正在部署中” 状态。
在资源部分中, AWS CloudFormation 开始创建堆栈并显示每个资源的 CREATE_IN_PROGRESS 状态。该过程完成后, AWS CloudFormation 将显示 “创建_完成” 状态。
部署完成后,Lambda 将显示 Your application has been deployed(您的应用程序已部署完成)状态。
发布到您的 Amazon SNS 主题的消息将在事件搜索和分析管 OpenSearch 道自动配置的服务索引中编制索引。如果管道无法为事件编制索引,则会将其存储在 Amazon S3 死信存储桶中。