【发布时间】:2017-04-29 17:51:36
【问题描述】:
我最近接触了带有 .NET Core 1.0 的 AWS 无服务器架构。在我的应用程序中,我们在自己的机器上使用 Elasticsearch 来维护它。我想要做的是使用 AWS API Gateway 中的 AWS Elasticsearch Service,它由 AWS Lambda 代理。 (我相信我输入正确)
每当我的代码访问我的 Elasticsearch 域时,我都会收到超时错误。截至目前,我的 Elasticsearch 域是完全开放的,因此任何人都可以访问这些信息。我想只为 API Gateway 和 Lamda 功能锁定它。
我尝试弄乱政策和角色,但没有成功。有没有人试图做我想做的事情,如果是这样,他们是如何连接的?还是有更好的办法?
【问题讨论】:
-
1) 同一地区(或)不同地区的所有资源? 2) 资源是否附有适当的政策? 3)您确定您的请求可以快速处理而不是代码问题吗?大多数超时问题将围绕这些
-
1) 我已经检查过是否可以找到这些区域。我找不到 Elasticsearch 和 API Gateway 的区域。部署 Lambda 和 API 网关的过程是通过 Amazon AWS Toolkit for Visual Studio 完成的,所以我希望它们位于同一区域。 2)我不确定政策。我认为那是我可能遇到问题的地方。在这方面应该采取什么样的做法,我将如何对这些服务制定正确的政策? 3)就我的代码而言,我已经运行了单元测试,并且从我的本地开发环境到 AWS Elasticsearch,搜索请求大约需要 1 秒。
-
看起来有一个来自 ElasticSearch 的nice example,用于说明如何从 Lambda 函数访问 ElasticSearch 域。您可以在this documentation 中找到更多信息。
-
在弄乱了 AWS 和我的代码之后。我意识到这与我的 VPC/安全组的配置方式有关。如何允许访问 VPC 之外的互联网?我已经在 0.0.0.0/0 的所有端口上将出站设置为所有流量,但仍然没有运气到达外部服务。有人知道如何配置安全组吗?
-
我在两个子网上都配置了 NAT 网关。
标签: amazon-web-services elasticsearch aws-lambda aws-api-gateway