使用Firehose写数据 I

往OpenSearch Serverless中写数据方式有很多,比如:

  • Kinesis Firehose可以直接和OpenSearch Serverless集成
  • 使用AWS SDK写数据
  • 使用logstash收集日志数据,直接写入到OpenSearch Serverless

img

在接下来的实验里,我们将一一使用上面的几种方式往里面写数据。本节先介绍使用Firehose这种方式

img

创建Firehose

进入到Kinesis页面,点击Create delivery stream:

image-20230818091906225

Source类型有两种,一种是使用Kinesis data stream往Firehose写数据,另一种是Direct PUT,这里我们选择后者,因为是使用python代码往Firehose写数据。

Destination选择OpenSearch Serverless,为delivery命名为firehose-serverless-delivery:

image-20230818092006612

在Destination settings部分,选择上一节创建的serverless集群。

Firehose往Serverless里写数据时的Index名称,命名为firehose-ingest

image-20230818092056958

Buffer hints里配置成最小值,这样可以及时在Opensearch中观察到数据的写入:

image-20230818093622682

配置一个桶,接收Firehose写入OpenSearch Serverless失败时的数据。如果没有桶可以先创建一个:

image-20230818092142351

最后点击创建。


为Firehose IAM Role添加权限

Firehose要往OpenSearch Serverless,要完成双向的权限配置:

  1. Firehose的IAM Role上要有写入OpenSearch Serverless的权限
  2. OpenSearch Serverlessdata access policy上要允许Firehose的IAM Role来访问它。

这里我们先完成第一步的配置,下一节完成第二步的配置。

点击Firehose的IAM Role,进入IAM页面:

image-20230818092627843

添加一个inline policy:

image-20230818105811970

使用JSON Editor添加以下权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "aoss:APIAccessAll",
            "Resource": "*"
        }
    ]
}

为policy命名,比如opensearch-serverless-access,完成权限的添加:

image-20230818105853892