我想将数据从 S3 目录复制到 Amazon ElasticSearch 服务。我已经尝试按照指南进行操作,但不幸的是我正在寻找的部分丢失了。我不知道 lambda 函数本身应该是什么样子(指南中有关此的所有信息都是:“将您的应用程序源代码放在 eslambda 文件夹中。”)。我希望 ES 自动索引文件。
目前我正在尝试
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = urllib.unquote_plus(record['s3']['object']['key'])
index_name = event.get('index_name', key.split('/')[0])
object = s3_client.Object(bucket, key)
data = object.get()['Body'].read()
helpers.bulk(es, data, chunk_size=100)
但我得到了一个巨大的错误说明
elasticsearch.exceptions.RequestError: TransportError(400, u'action_request_validation_exception', u'Validation Failed: 1: index is missing;2: type is missing;3: index is missing;4: type is missing;5: index is missing;6: type is missing;7: ...
谁能向我解释一下,我该如何设置,以便我的数据从 S3 移动到 ES 并自动映射和自动索引?显然这是可能的,如参考here和here中所述。