aws-sdk v3 не может найти учетные данные

Я использую версию 3 из aws-sdk, пытаюсь точно следовать справочной документации , но не могу загрузить учетные данные.

      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?

3 ответа

Вам нужно пройти AWS profileв fromIni(). это defaultв твоем случае.

      const {fromIni} = require("@aws-sdk/credential-provider-ini");

const credentials = fromIni({profile: 'default'});

Я тоже боролся с общими файлами учетных данных. Я знаю, что это неподходящий способ из соображений безопасности, но вы можете попробовать следующий пример, если вас ограничивает время:

      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), но вы можете заменить их своими ключами, регионом и клиентом. Я не рекомендую жестко кодировать ключи, но во время разработки это должно работать как временное решение.

у меня была такая же проблема, просто выполните следующие действия

https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_profiles.html

поместите папку .aws с файлом учетных данных в домашнюю (linux) или %UserProfile% (windows)

Другие вопросы по тегам