问题描述
我正在使用 aws-sdk 的 v3,试图完全遵循 reference docs,但无法加载凭据。
thrift://<master-node-hostname>:9083
...给出错误:
const {fromIni} = require("@aws-sdk/credential-provider-ini");
const credentials = fromIni({});
还有:
Unhandled Rejection (Error): Profile default Could not be found or parsed in shared credentials file.
...给出了我认为可能是原因的错误:
const {parseKNownFiles} = require("@aws-sdk/credential-provider-ini");
const pkf = parseKNownFiles();
如果它找不到已知的凭据文件,那么它肯定不会在其中找到默认值。
但我确定凭据在那里:
TypeError: Cannot read property 'loadedConfig' of undefined
如何在 aws-sdk v3 中加载我的凭据?
解决方法
我也一直在为共享凭证文件苦苦挣扎。我知道出于安全原因,这不是合适的方法,但您可以尝试以下示例,以防时间紧迫:
const client = new LexRuntimeV2Client({
region: process.env.REACT_APP_AWS_REGION,credentials: {
accessKeyId: process.env.REACT_APP_AWS_ACCESS_KEY,secretAccessKey: process.env.REACT_APP_AWS_SECRET_ACCESS_KEY
},});
在代码段中,我使用了环境变量和特定客户端 (AWS Lex),但您可以将它们替换为您的密钥、区域和客户端。我不建议对您的密钥进行硬编码,但在开发过程中,这作为临时解决方案应该可以正常工作。