簡體   English   中英

AWS Kinesis Firehose lambda 如何向 ElasticSearch 發送更新和刪除請求?

[英]How can AWS Kinesis Firehose lambda send update and delete requests to ElasticSearch?

我沒有看到 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

示例中的 output 格式沒有顯示指定createupdatedelete請求的方法:

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

除了示例之外,我沒有找到 output 格式的定義,以說明 kinesis firehose lambda 處理程序應返回的內容。

Firehose 使用 lambda function 在將記錄傳送到您的案例 OpenSearch(ES) 中的目的地之前轉換記錄,因此它們僅用於修改數據的結構,但不能用於影響 CRUD 操作。 Firehose 只能將記錄插入特定索引。 如果您需要一個簡單的選項來在一段時間后從 ES 索引中刪除記錄,請在為您的 Firehose stream 指定目標時查看“索引輪換”選項。

如果您想對 ES 使用 CRUD 操作並繼續使用 Firehose,我建議以原始格式將記錄發送到 S3 存儲桶,然后在 object 上傳事件上觸發 lambda function,該事件將根據您的負載中的字段執行 CRUD 操作。

對 lambda https://github.com/chankh/ddb-elasticsearch/blob/master/src/lambda_function.py中的 ES 執行 CRUD 操作的一個很好的例子

這個特定示例旨在將數據從 DynamoDB 流發送到 ES,但它對您來說應該是一個很好的起點

Firehose 只能插入到 ES 中。 它不能進行更新和刪除。 如果你想執行更新和刪除,你需要寫一個 lambda 這是從 Kinesis stream 上的事件中觸發的

https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM