aws-sdk v3 找不到凭据
aws-sdk v3 cannot find credentials
我正在使用 aws-sdk v3,试图完全遵循 reference docs,但无法加载凭据。
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
如果它找不到已知的凭据文件,那么它肯定不会在其中找到默认值。
但我确定凭据在那里:
PS C:\> aws sts get-caller-identity --profile="default"
{
"UserId": "*********************",
"Account": "************",
"Arn": "arn:aws:iam::************:user/*****"
}
如何在 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),但您可以用它们代替您的密钥、区域和客户端。我不建议对您的密钥进行硬编码,但在开发过程中,这应该可以作为临时解决方案。
您需要将 AWS profile
传递给 fromIni()
。你的情况是default
。
const {fromIni} = require("@aws-sdk/credential-provider-ini");
const credentials = fromIni({profile: 'default'});
我遇到了同样的问题只是按照这些步骤
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_profiles.html
将包含凭据文件的 .aws 文件夹放在主目录 (linux) 或 %UserProfile% (windows)
我正在使用 aws-sdk v3,试图完全遵循 reference docs,但无法加载凭据。
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
如果它找不到已知的凭据文件,那么它肯定不会在其中找到默认值。
但我确定凭据在那里:
PS C:\> aws sts get-caller-identity --profile="default"
{
"UserId": "*********************",
"Account": "************",
"Arn": "arn:aws:iam::************:user/*****"
}
如何在 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),但您可以用它们代替您的密钥、区域和客户端。我不建议对您的密钥进行硬编码,但在开发过程中,这应该可以作为临时解决方案。
您需要将 AWS profile
传递给 fromIni()
。你的情况是default
。
const {fromIni} = require("@aws-sdk/credential-provider-ini");
const credentials = fromIni({profile: 'default'});
我遇到了同样的问题只是按照这些步骤
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_profiles.html
将包含凭据文件的 .aws 文件夹放在主目录 (linux) 或 %UserProfile% (windows)