AWS Lambda + API网关+ AWS Elasticsearch遇到超时
问题描述:
我最近使用.NET Core 1.0进入了AWS无服务器体系结构。在我的应用程序中,我们在自己的机器上使用Elasticsearch来维护它。我正在尝试使用AWS API网关的AWS Elasticsearch服务,该服务正由AWS Lambda代理。 (我相信我已经输入正确)AWS Lambda + API网关+ AWS Elasticsearch遇到超时
当我的代码访问我的Elasticsearch域时,我收到一个超时错误。截至目前,我的Elasticsearch域名已经公开,所以任何人都可以访问这些信息。我想锁定它只有API网关和Lamda功能。
我试过搞乱政策和角色,没有成功。有没有人试图做我想做的事情,如果是的话,他们怎么能够连接它?或者,还有更好的方法?
答
简单的解决方案是将您所有的服务从他们目前正在使用的VPC中删除(我相信它们不在同一个,因为您的IO调用会超时)。
我的答案在这里给你一个很好的背景介绍了使用VPC的AWS Lambda以及外部IO调用超时的原因。
AWS lambda invoke not calling another lambda function - Node.js
注:答案是不相关的NodeJS。
1)同一地区(或)不同地区的所有资源? 2)资源是否有适当的政策? 3)你确定你的请求可以快速处理,而不是代码问题?大多数时间问题将围绕这些 – kosa
1)我已检查,看看我能否找到地区。我无法找到Elasticsearch的区域和API网关。部署Lambda和API网关的过程是通过亚马逊AWS Toolkit for Visual Studio完成的,因此我希望它们位于同一区域。 2)我不确定这些政策。我认为这是我可能遇到的问题。这方面的做法应该如何,我将如何着手制定这些服务的正确政策? 3)就我的代码而言,我运行了单元测试,并从本地开发环境运行到AWS Elasticsearch,搜索请求大约需要1秒。 – sroye98
看起来像ElasticSearch有一个[很好的示例](https://github.com/awslabs/amazon-elasticsearch-lambda-samples/blob/master/src/s3_lambda_es.js),以了解如何从一个ElasticSearch域访问ElasticSearch域Lambda函数。您可以在[本文档]中找到更多信息(http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-aws-integrations.html)。 –