我沒有看到 AWS Kinesis Firehose lambda 如何向 ElasticSearch(AWS OpenSearch 服務)發送更新和洗掉請求。
Elasticsearch 檔案 API 為 CRUD 操作提供: https ://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html
我發現的示例處理 Create 案例,但沒有顯示如何做delete或update請求。
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
示例中的輸出格式未顯示指定create或請求的update方法:delete
output_record = {
'recordId': record['recordId'],
'result': 'Ok',
'data': base64.b64encode(payload)
}
除了示例之外,我沒有找到 kinesis firehose lambda 處理程式應回傳的輸出格式的定義。
uj5u.com熱心網友回復:
在您的情況下,Firehose 使用 lambda 函式在將記錄傳送到目的地之前轉換記錄 OpenSearch(ES),因此它們僅用于修改資料的結構,但不能用于影響 CRUD 操作。Firehose 只能將記錄插入到特定索引中。如果您需要一個簡單的選項來在一段時間后從 ES 索引中洗掉記錄,請在為 Firehose 流指定目標時查看“索引輪換”選項。
如果您想在 ES 中使用 CRUD 操作并繼續使用 Firehose,我建議以原始格式將記錄發送到 S3 存盤桶,然后在物件上傳事件上觸發 lambda 函式,該函式將根據有效負載中的欄位執行 CRUD 操作。
從 lambda 對 ES 執行 CRUD 操作的一個很好的例子https://github.com/chankh/ddb-elasticsearch/blob/master/src/lambda_function.py
這個特定的示例旨在將資料從 DynamoDB 流發送到 ES,但它應該是您的一個很好的起點
uj5u.com熱心網友回復:
Firehose 只能插入 ES。它不能進行更新和洗掉。如果要執行更新和洗掉,則需要撰寫一個從 Kinesis 流上的事件觸發的 lambda
https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/437230.html
標籤:亚马逊网络服务 弹性搜索 aws-lambda amazon-kinesis-firehose
上一篇:彈性搜索小寫分析器不回傳搜索結果
