首页 > 解决方案 > 在 AWS 上托管 Elasticsearch:{"error":"您需要先登录或注册才能继续。"}

问题描述

我正在尝试在 AWS 服务器上托管 Elasticsearch 应用程序。为此,我正在使用 Elastic Enterprise Search。我将 API 连接器配置如下:

const connector = new AppSearchAPIConnector({
  searchKey: "search-gs7t3micqu41z1dsou1ccz95",
  engineName: "sentence-similarity",
  endpointBase: "http://ec2-18-159-135-25.eu-central-1.compute.amazonaws.com:3002"
});

应用程序本身在端口 3000 下使用 npm 运行。我在 AWS 安全组中启用了这两个端口。

在启动 Elastic Search 和 Enterprise Search 之后,npm start我还可以连接到http://ec2-18-159-135-25.eu-central-1.compute.amazonaws.com:3000,这样就可以了。但是,一旦我对应用程序进行 API 调用,就会收到以下错误:

发布http://ec2-18-159-135-25.eu-central-1.compute.amazonaws.com:3002/api/as/v1/engines/sentence-similarity/search.json net:: ERR_CONNECTION_REFUSED

此外,当我curl http://localhost:3002/api/as/v1/engines/sentence-similarity/search.json在控制台中输入时,我收到以下错误:

{"error":"您需要先登录或注册才能继续。"}

因此,我假设与 Elasticsearch 的连接存在问题。当我在本地机器上托管应用程序时,我从未遇到过这个问题。

我的想法,如何解决这个问题:

无论如何,我是部署的初学者,我需要一些细节方面的帮助。非常感谢您!

编辑:

经过更多研究,我相信我发现了问题所在。似乎在 AWS 服务器上,建立了一种新的 Elastic Enterprise 实例。这意味着,还没有配置引擎,这就是 API 调用失败的原因。如何连接到现有引擎而不必创建新引擎?

标签: amazon-web-serviceselasticsearchnpmdeploymentlocalhost

解决方案


好吧,我没有使用 AWS Elastic 搜索,但我可以提供一些建议,请查看以下网址,

https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#kibana-test https://www.youtube.com/watch?v=mWRo_JVgP_0

还要考虑检查安全组。


推荐阅读