node.js - Cloud Id 未在 Node.js Elasticsearch 客户端中设置正确的主机
问题描述
我正在构建一个 Node.js 应用程序,以将文档批量发送到 Elastic.co 上的 Elasticsearch 集群。
这是package.json:
{
"name": "bulk-dispatcher",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"start": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"btoa": "^1.2.1",
"dotenv": "^9.0.0",
"elasticsearch": "^16.7.2",
"express": "^4.17.1",
"express-bearer-token": "^2.4.0",
"jwt-decode": "^3.1.2",
"querystring": "^0.2.1",
"rollbar": "^2.21.1",
"winston": "^3.3.3"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
}
所以你可以看到 dot.env 和 elasticsearch 已经安装好了。
我已经查阅并使用了 JS 客户端连接到集群的示例,这里是代码:
import es from 'elasticsearch'
import dotenv from 'dotenv'
dotenv.config()
const client = new es.Client({
cloud: {
id: process.env.ELASTIC_CO_SCOTTIE_PROD_CLOUD_ID
},
auth: {
apiKey: {
id: process.env.ELASTIC_CO_API_KEY_ID,
api_key: process.env.ELASTIC_CO_API_KEY
}
}
})
export default client
我已经验证了 process.env 的值是正确的;我们为我们的 PHP 客户端使用这些相同的凭据,它连接得很好。
当我尝试使用此客户端时,此错误显示:
POST http://localhost:9200/events/_search => connect ECONNREFUSED 127.0.0.1:9200
现在该错误表明它正在尝试连接到不存在的本地 ES。
Elasticsearch 文档说使用您的云 ID 进行连接应该为您的集群设置正确的主机。显然这没有发生。
你能看到我在这里做错了什么吗?
感谢您的想法。
问候,史蒂夫
解决方案
推荐阅读
- javascript - 如何在 URL 末尾添加 id="text1" 的值?
- scala - SBT 构建中未解决的依赖 hamcrest-core
- php - 如何在 Doctrine 准备好的 SQL 语句中使用 + 或 - 运算符作为参数?
- c# - 想通过 AutoMapper 选择特定的列
- python - 有没有更有效的方法来扩展字符串?
- python - 对于无限数据集,每个时期使用的数据是否相同?
- reactjs - 使用 react-testing-library 渲染方法不起作用
- visual-studio-code - 以编程方式在 vs-code 中获取代理设置
- node.js - 无法连接到 MongoDB 集群
- c# - 在 C# 中初始化嵌套字典