amazon-web-services - 在 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 Search 和 Enterprise Search。可能是身份验证出了问题,我无法连接到我的 Elasticsearch 引擎。
- 有两个
.yml
文件,一个用于 Elastic Search,一个用于 Enterprise Search,我可以对其进行配置。可能,当我在本地计算机上托管应用程序时,我必须调整这些。
无论如何,我是部署的初学者,我需要一些细节方面的帮助。非常感谢您!
编辑:
经过更多研究,我相信我发现了问题所在。似乎在 AWS 服务器上,建立了一种新的 Elastic Enterprise 实例。这意味着,还没有配置引擎,这就是 API 调用失败的原因。如何连接到现有引擎而不必创建新引擎?
解决方案
好吧,我没有使用 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
还要考虑检查安全组。
推荐阅读
- android - 如何在复选框上使用边距,以便它们彼此位于
- postgresql - 使用 PostgreSQL select into 获取多列时出现问题
- sap-ase - 如何在 Sybase DB 中列出分配给他们的用户和角色
- java - 如何重新运行静态整数数组?
- reactjs - 值被重置但输入不是?
- ruby - 登录后在 ruby 中访问路由
- json - 如何获取服务器从 reqwest http 调用发回的数据?
- wpf - 在另一个线程中使用 BitmapDecoder 然后在哪里创建。(调用线程无法访问该对象,因为不同的线程拥有它。)
- r - 获得循环产生的多个模型的平均边际效应
- python - Python:从时间戳中添加或删除时区小时并获取实际时间