gpt4 book ai didi

node.js - AWS凭证错误:无法从任何提供程序加载凭证。 ElasticSearch服务node.js

转载 作者:行者123 更新时间:2023-12-03 02:25:37 25 4
gpt4 key购买 nike

我有一个问题,我认为应该在互联网上发布。我可能不知道内部问题,但我认为我有解决方案。无论如何问题:

我正在AWS上托管ElasticSearch服务,并且试图在本地或通过托管在AWS上的ec2服务访问该服务。

但是当我尝试在本地时出现此错误:Request Timeout after 30000ms
当我在ec2上尝试时,出现此错误:AWS Credentials error: Could not load credentials from any providers
这是我设置凭据并进行查询的方法:

const AWS = require('aws-sdk');
const connectionClass = require('http-aws-es');
const elasticsearch = require('elasticsearch');

try {
var elasticClient = new elasticsearch.Client({
host: "https://some-elastic.us-east-1.es.amazonaws.com/",
log: 'error',
connectionClass: connectionClass,
amazonES: {
region: 'us-east-1',
credentials: new AWS.Credentials('id', 'key')
}
});

elasticClient.indices.delete({
index: 'foo',
}).then(function (resp) {
console.log("Successful query!");
console.log(JSON.stringify(resp, null, 4));
}, function (err) {
console.trace(err.message);
});
} catch (err) {
console.log(err);
} finally {
}

因此,如上所述,我一直收到此错误。我尝试了许多其他变体来通过凭据。

最佳答案

我对问题的模糊理解是,在amazonES对象中设置的credentials将被忽略,或者该区域未与凭据一起传递。因此,AWS不知道在哪里搜索凭证。

无论如何,这里是解决方案:

    AWS.config.update({
secretAccessKey: 'key',
accessKeyId: 'id',
region: 'your region ex. us-east-1'
});
var elasticClient = new elasticsearch.Client({
host: "https://some-elastic.us-east-1.es.amazonaws.com/",
log: 'error',
connectionClass: connectionClass,
amazonES: {
credentials: new AWS.EnvironmentCredentials('AWS'),
}
});

这有点 buggy 的情况。我无法在任何在线位置找到此解决方案,希望它可以帮助将来遇到相同错误的人。

关于node.js - AWS凭证错误:无法从任何提供程序加载凭证。 ElasticSearch服务node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61179618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com