【问题标题】:AWS ElasticSearch Request not giving response in PostmanAWS ElasticSearch 请求未在 Postman 中给出响应
【发布时间】:2020-05-29 06:42:43
【问题描述】:

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

【问题讨论】:

  • 您的 ES 域在 vpc 中。您是如何启用对它的访问权限的?
  • 通过安全组并允许端口@Marcin

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


【解决方案1】:

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

以下写在docs

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

需要考虑的一些选项是:

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

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

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

【讨论】:

  • 感谢您的回答。所以我无法从本地 macbook 连接到 vpc?。
  • @AnkitShah 不直接。您可以在 VPC 中设置堡垒主机,并通过堡垒主机从 ES 到本地 mac 的ssh tunnel 连接。这将是文档中提到的最简单的临时 proxy 解决方案。或者,从堡垒主机本身查询 ES 域(例如设置远程桌面)。
【解决方案2】:

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

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

要了解更多访问政策,可以参考这个SO answer

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

url中的endpoint,是你创建ES域时生成的endpoint

创建索引

用于将数据添加到索引中

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多