首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试为Amazon ES集群中的数据编制索引时,cloudwatch日志中出现错误

尝试为Amazon ES集群中的数据编制索引时,cloudwatch日志中出现错误
EN

Stack Overflow用户
提问于 2016-07-19 22:04:57
回答 1查看 129关注 0票数 1

我遵循this tutorial自动将我的所有DynamoDB流索引到我创建的亚马逊ElasticSearch服务集群中。

我一步一步地遵循它,我创建了所有的权限策略。

然而,当我在测试时,我的Amazon ES集群中没有任何内容被索引。当我检查CloudWatch时,我看到这个日志:

代码语言:javascript
复制
('ERROR: ', 'Traceback (most recent call last):
 File "/var/task/lambda_function.py", line 123, in lambda_handler
 return _lambda_handler(event, context)
 File "/var/task/lambda_function.py", line 219, in _lambda_handler
 post_to_es(es_payload) # post to ES with exponential backoff
 File "/var/task/lambda_function.py", line 86, in post_to_es
 es_ret_str = post_data_to_es(payload, es_region, creds, es_endpoint, \'/_bulk\')
 File "/var/task/lambda_function.py", line 53, in post_data_to_es
 req = botocore.awsrequest.create_request_object(params)
 File "/var/runtime/botocore/awsrequest.py", line 314, in create_request_object
 request_object.context.update(r[\'context\'])
KeyError: \'context\'
')

我不明白这个问题。我所知道的是我的Lambda函数成功地触发了每个DynamoDB流,可以将日志发送到CloudWatch,但无法在亚马逊ES中索引这些数据。

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-03 15:38:21

aws lambda使用的botocore代码最近发生了重大变化。

受影响的代码行是:

req = botocore.awsrequest.create_request_object(params)

对于新的更改,他们希望参数参数包含'context‘字段。

因此,请将上下文字段添加到参数参数中:示例:params = {'method': method, 'url': proto + host + path, 'region': region, 'headers': {'Host': host}, 'body': payload,'context': {'signing': {'region': 'us-east-1'}}}

完成上述更改后,您的lambda应该能够成功运行。

详细信息:在文件botocore.awsrequest中,第314行的代码更改导致了此问题。https://github.com/boto/botocore/commit/28b8831f5f8518bef5accf994fc377c58a3569f7#diff-cb00fc815f8f80ae15e7d0cecc74b395

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38460837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档