AWS Kinesis Firehose lambda如何向ElasticSearch发送更新和删除请求?

pobjuy32  于 2023-04-29  发布在  ElasticSearch
关注(0)|答案(3)|浏览(172)

我没有看到AWS Kinesis Firehose lambda如何向ElasticSearch(AWS OpenSearch服务)发送更新和删除请求。
Elasticsearch文档API提供了CRUD操作:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html
我找到的示例涉及Create情况,但没有展示如何执行deleteupdate请求。https://aws.amazon.com/blogs/big-data/ingest-streaming-data-into-amazon-elasticsearch-service-within-the-privacy-of-your-vpc-with-amazon-kinesis-data-firehose/https://github.com/amazon-archives/serverless-app-examples/blob/master/python/kinesis-firehose-process-record-python/lambda_function.py
示例中的输出格式没有显示指定createupdatedelete请求的方法:

output_record = {
           'recordId': record['recordId'],
           'result': 'Ok',
           'data': base64.b64encode(payload)
       }

除了这些示例之外,我没有找到kinesis firehose lambda处理程序应该返回的输出格式的定义。

ufj5ltwl

ufj5ltwl1#

Firehose使用lambda函数在将记录传递到目的地之前对其进行转换(在您的案例中为OpenSearch(ES)),因此它们仅用于修改数据的结构,而不能用于影响CRUD操作。Firehose只能将记录插入到特定索引中。如果你需要一个简单的选项来删除记录从ES索引后,一定的时间有一个看“索引旋转”选项时,指定您的消防水带流的目的地。
如果你想在ES中使用CRUD操作,并继续使用Firehose,我建议以原始格式将记录发送到S3桶,然后在对象上传事件上触发lambda函数,该函数将根据有效负载中的字段执行CRUD操作。
对lambda https://github.com/chankh/ddb-elasticsearch/blob/master/src/lambda_function.py中的ES执行CRUD操作的一个很好的例子
构建这个特定示例是为了将DynamoDB流中的数据发送到ES中,但它应该是您的一个很好的起点

yiytaume

yiytaume2#

消防软管只能插入ES。它不能进行更新和删除。如果要执行更新和删除,则需要编写从Kinesis流上的事件中触发的lambda
https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html

相关问题