AWS ElasticSearch请求未在Postman中给出响应

时间:2020-05-29 06:42:43

标签: amazon-web-services elasticsearch postman aws-elasticsearch

https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html

我正在关注上面的文档,以通过Postman连接到我的AWS Elastic Search。

我想要实现发送的请求并获得响应的方法。

我也放置了所有与身份验证相关的内容,但仍然给出超时错误。

显示错误'Could not get any response'

我与SSL相关的Postman设置也正确

示例网址:

https://vpc-abc-yqb7jfwa6tw6ebwzphynyfvaka.ap-southeast-1.es.amazonaws.com/elasticsearch_index/_search?source={"query":{"bool":{"should":[{"multi_match":{"query":"abc","fields":["name.suggestion"],"fuzziness":1}}]}},"size":10,"_source":["name"],"highlight":{"fields":{"name.suggestion":{}},"pre_tags":["\u003Cem\u003E"],"post_tags":["\u003C\/em\u003E"]}}&source_content_type=application/json

enter image description here

2 个答案:

答案 0 :(得分:0)

由于您的ES域位于VPC中,因此如果从互联网访问,则无法访问。不幸的是,使用安全组和“允许端口”是不够的。

以下内容写在docs中:

但是,如果尝试在Web浏览器中访问端点,则可能会发现请求超时。要执行基本的GET请求,您的计算机必须能够连接到VPC。此连接通常采用 VPN,托管网络或代理服务器的形式。

要考虑的一些选项是:

  • 在VPC的公共子网中设置堡垒主机,并通过堡垒主机从ES到本地Mac的 ssh隧道连接。这将是文档中提到的最简单的临时代理解决方案。

  • 直接从堡垒主机(例如,远程桌面)访问EC

  • 设置代理服务器以将来自Internet的所有请求代理到ES。

答案 1 :(得分:0)

要创建和管理ES域,您可以参考此documentation

在“网络配置”部分中创建ES域时,您可以选择VPC访问或公共访问。如果选择公共访问,则可以使用仅允许特定用户或IP地址访问该域的访问策略来保护您的域。

要了解有关访问策略的更多信息,请参阅此SO answer

因此,如果您在VPC外部创建ES域,则可以在公共访问中轻松地通过邮递员发送请求并获得响应,无需添加任何授权

URL中的endpoint是创建ES域时生成的endpoint

创建索引

enter image description here

用于将数据添加到索引

enter image description here

获取API以获取创建的索引映射

enter image description here

现在,您可以从您的AWS控制台检查它是否在ES域中创建了该索引

enter image description here