aws-sdk v3 找不到凭据

问题描述

我正在使用 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),但您可以将它们替换为您的密钥、区域和客户端。我不建议对您的密钥进行硬编码,但在开发过程中,这作为临时解决方案应该可以正常工作。