Локальное использование общих файлов конфигурации / учетных данных AWS в приложении NodeJS ExpressJS

#node.js #amazon-web-services #express #aws-sdk #environment

#node.js #amazon-веб-сервисы #экспресс #aws-sdk #Окружающая среда

Вопрос:

Я задаю этот вопрос, потому что я долго тралил Google, пытаясь найти на него ответ, и, наконец, наткнулся на одну строку в документе AWS, которая указала мне на правильный ответ, но это не очевидно, поэтому надеюсь, что это поможет кому-то сэкономить время.

Проблема: я пытаюсь вызвать службы AWS через AWS SDK в моем приложении NodeJS Express, но SDK не загружает профиль и ключевые данные, которые у меня есть в файлах ~/.aws/credentials и ~/.aws/config . Когда я пытаюсь зарегистрировать объект учетных данных, он пуст. Я пытаюсь использовать профиль, который я установил с помощью переменной среды AWS_PROFILE, заданной в файле .env. Просматривая документы AWS, SDK должен искать эти файлы в разделе ~/.aws, но, похоже, он этого не делает.

Ответ №1:

Итак, ответ заключается в одной строке в одном из документов AWS: http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html

Аналогичным образом, если вы правильно указали свой регион в файле конфигурации, вы можете отобразить это значение, установив для переменной среды AWS_SDK_LOAD_CONFIG значение true

Добавление AWS_SDK_LOAD_CONFIG=true в мой файл .env привело к тому, что SDK начал использовать учетные данные, хранящиеся в файлах ~/.aws/config и ~/.aws/credentials .

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

Надеюсь, это поможет избавить кого-то еще от множества разочарований и поиска в Google!