Tan*_*Boy 4 amazon-web-services node.js elasticsearch aws-lambda
使用elasticsearch客户端(从elasticsearch npm版本15.4.1开始)时,AWS elasticsearch服务抱怨主机头无效。每个请求都会发生这种情况,即使它们有效。
我仔细检查了初始化elasticsearch客户端的配置,参数“host”的格式正确。
let test = require('elasticsearch').Client({
host: 'search-xxx.us-west-1.es.amazonaws.com',
connectionClass: require('http-aws-es')
});
Run Code Online (Sandbox Code Playgroud)
我希望获得一个干净的 ElasticsearchRequest,而没有相应的 InvalidHostHeaderRequests(我可以在 Amazon Elasticsearch Service 的集群运行状况仪表板上看到这些日志)。
Tan*_*Boy 10
发现问题了。当使用elasticsearch库连接到AWS ES集群时,以前的语法可能会导致问题,因此初始化客户端的最佳方法是指定整个“主机”对象,如下所示:
host: {
protocol: 'https',
host: 'search-xxx.us-west-1.es.amazonaws.com',
port: '443',
path: '/'
Run Code Online (Sandbox Code Playgroud)
这里的问题是,AWS ES Cluster 可能需要主机对象内的主机字段,这会导致“无效的主机标头”问题。希望这将帮助社区编写更好的代码。请参阅https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/16.x/host-reference.html进行参考。
| 归档时间: |
|
| 查看次数: |
8145 次 |
| 最近记录: |