我一步一步地遵循本教程,但是当我到达"测试结果"步骤时,我没有在索引时间中看到我的表名,因为在示例中显示了"all products"。
这意味着我的dynamodb表没有在我的Amazon ES域中索引。
我设置了所有授权并配置了lambda,就像在示例中一样。
现在我只是不知道如何在AWS ES中触发我的dynamodb流
检查Dynamo DB表中是否有内容。如果没有这个,将不会发生流,并且当Elasticsearch在第一次输入内容时创建索引(表)时,这将导致索引缺失。
如果你的Dynamo DB中有内容,问题很可能是由于Dynamo DB和AWS Lambda或AWS Lambda和Elasticsearch之间的集成问题。
这里有一些你可以做的事情来调试:
- 检查你的CloudWatch日志/监控你的lambda,看看它是否
- 调用是否成功?如果没有解决错误,再试一次
- lambda执行角色是否有适当的权限来发布东西到elasticsearch?(特别要检查,以便您为角色指定的ARN指向您的aws帐户中的正确资源)
- lambda执行角色是否具有从Dynamo DB流读取内容的适当权限?(点击这里查看ARN)
- 验证您指定的ES_ENDPOINT是否指向您在教程前面创建的集群
希望这能帮助你解决问题!
我只是复制了那些家伙在博客中所做的,因为博客中提到的Lambda函数Blueprint不再可用了。
你可以在这里使用我的代码做同样的事情:https://github.com/sportarchive/dynamodb-to-elasticsearch
它使用ElasticSearch Python库,并在生产环境中完美地工作。它支持:INSERT, UPDATE和DELETE以及DynamoDB中的所有数据类型