本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon OpenSearch Ingestion 管道与其他服务和应用程序集成
要成功将数据提取到 Amazon OpenSearch Ingestion 管道,您必须将您的客户端应用程序(源)配置为将数据发送到管道终端节点。您的来源可能是客户端,例如 Fluent Bit 日志、 OpenTelemetry收集器或简单的 S3 存储桶。每个客户端的确切配置各不相同。
源配置期间(与直接向 OpenSearch 服务域或 OpenSearch 无服务器集合发送数据相比)的重要区别在于 AWS 服务名称 (osis
) 和主机端点,它们必须是管道端点。
构建摄取端点
要将数据摄入管道,请将其发送到摄取端点。要找到摄取URL,请导航到流水线设置页面并复制摄取:URL
要为基于拉取的来源(例如OTel跟踪
例如,假设管道配置的摄取路径如下所示:
entry-pipeline: source: http: path: "
/my/test_path
"
您在客户端配置中指定的完整摄取端点将采用以下格式:https://ingestion-pipeline-abcdefg.us-west-2.osis.amazonaws.com
。/my/test_path
有关更多信息,请参阅 指定提取路径。
创建摄取角色
所有对 OpenSearch Ingestion 的请求都必须使用签名版本 4 进行签名。至少,必须向签署请求的角色授予osis:Ingest
操作权限,从而允许其向 OpenSearch 摄取管道发送数据。
例如,以下 AWS Identity and Access Management (IAM) 策略允许相应的角色向单个管道发送数据:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "osis:Ingest", "Resource": "arn:aws:osis:
us-east-1
:{account-id}
:pipeline/pipeline-name
" } ] }
注意
要将该角色用于所有管道,请将Resource
元素ARN中的” 替换为通配符 (*)。
提供跨账户摄取访问权限
注意
您只能为公共管道提供跨账户摄取访问权限,而不能为管道提供跨账户摄取权限。VPC
您可能需要将来自其他渠道的数据提取到管道中 AWS 账户,例如存放源应用程序的帐户。如果写入管道的委托人与管道本身的账户不同,则需要将委托人配置为信任另一个IAM角色来将数据摄取到管道中。
配置跨账户摄取权限
-
在与管道相同的范围内创建具有
osis:Ingest
权限的摄取角色( AWS 账户 如上一节所述)。有关说明,请参阅创建IAM角色。 -
为摄取角色附加信任策略,允许其他账户主体担任此角色:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
{external-account-id}
:root" }, "Action": "sts:AssumeRole" }] } -
在另一个账户中,配置您的客户端应用程序(例如,Fluent Bit)担任摄取角色。为使配置生效,应用程序账户必须向应用程序用户或角色授予担任摄取角色的权限。
以下基于身份的示例策略允许附加主体担任管道账户的
ingestion-role
:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
{account-id}
:role/ingestion-role
" } ] }
然后,客户端应用程序可以使用该AssumeRole操作来假设数据ingestion-role
并将其摄取到关联的管道中。
后续步骤
将数据导出到管道后,您可以从配置为管道接收器的 OpenSearch 服务域中查询数据。以下资源可帮助您开始使用: