1

我想请教您如何正确地将数据从 S3 放入 ES 域。我创建并配置了一个新的 ES 域、存储桶和 lambda 函数(来自此示例: https ://github.com/awslabs/amazon-elasticsearch-lambda-samples )。所有这些都是在同一位置创建的。

一切都会好起来的,但我试着往我的桶里放一些东西,一切看起来都很好——我已经放置了一个新的 json 文件,然后 lambda 函数检测到它并显示如下结果:

{
      "Records": [
            "bucket": {
                "name": "test",
                "...."
            },
            "object": {
                "key": "test.json",
                "size": 22,
                "eTag": "",
                "sequencer": ""
            }
            ....
       ]
}

2016-04-08T07:34:xxxxxxx 0 All 26 log records added to ES.

毕竟,我试图在 ES 中搜索一些东西,但它没有显示任何新索引,我已经通过 url 进行了检查:

https://search-xxxx.us-west-2.es.amazonaws.com/_aliases

我究竟做错了什么?

干杯:)

4

1 回答 1

0

必须先创建索引

您报告的代码中的 lambda 函数https://github.com/awslabs/amazon-elasticsearch-lambda-samples/blob/master/src/s3_lambda_es.js具有现有索引的链接

/* Globals */
var esDomain = {
    endpoint: 'my-search-endpoint.amazonaws.com',
    region: 'my-region',
    index: 'logs',
    doctype: 'apache'
};

您已经更新了这些值,并且它必须与您创建的索引匹配

如果您离开了logs,您必须在 elasticsearch 中创建日志索引

curl -XPOST 'https://search-xxxx.us-west-2.es.amazonaws.com/_aliases' -d '
{
    "actions" : [
        { "add" : { "index" : "logs", "alias" : "logs" } }
    ]
}'

只需确保索引在创建和您的 lambda 函数之间对齐

于 2016-04-08T10:01:24.317 回答