Как загрузить конфиг из ~/.aws/config
журнал изменений говоритLoad config from ~/.aws/config if AWS_SDK_LOAD_CONFIG is set.
Не удалось найти примеры или документацию о том, как загрузить конфигурацию. Любая помощь!
2 ответа
В том, как aws-sdk загружает конфигурацию, есть немного магии
либо установите переменную env
export AWS_SDK_LOAD_CONFIG="true"
или перед загрузкой набора aws-sdk
process.env.AWS_SDK_LOAD_CONFIG = true;
Затем загрузите модуль aws;
var AWS = require('aws-sdk');
Вы можете получить доступ к региону напрямую,
AWS.config.region
Ответ Шриниваса правильный. Также кажется, что это единственный способ сделать это без написания пользовательской функции.
Я проследил это в исходном коде и в том, как он загружается.~/.aws/config
похож на этот псевдокод:
if process.env.AWS_SDK_LOAD_CONFIG:
return load('~/.aws/credentials').overwrite('~/.aws/config')
else:
return load('~/.aws/credentials')
Это также означает, что вы можете установить переменную среды после require('aws-sdk')
, пока вы делаете это раньше new SharedIniFileCredentials({..})
или credentials.refresh()
. Остерегайтесь этогоcredentials.get()
не будет работать, пока не истечет срок действия токена сеанса.
Для этого есть документация:
- ЗДЕСЬ: Идет загрузка учетных данных узла
- ЗДЕСЬ: загрузка JSON-файла с учетными данными узла
- ЗДЕСЬ: Начало работы NodeJS
Я бы порекомендовал установить инструмент awscli, чтобы настроить это, а затем запустить aws configure
в вашем терминале. По умолчанию все, что вы запускаете на локальном хосте, принимает учетные данные, указанные в вашем config
файл, если не указано, чтобы принять другой профиль.
Пример из первой ссылки:
AWS.config.credentials = new AWS.SharedIniFileCredentials( { profile: 'work-account' } );
Если вы используете CLI для запуска вашего скрипта:
AWS_PROFILE=work-account node script.js
Если вы используете только инструмент CLI, а не JavaScript:
aws s3 ls --profile work-account
Обновить:
config
а также credentials
сделаны и ссылаются в то же время. Когда ты бежишь aws configure
это делает два файла. credentials
файл, содержащий AccessKey и SecretKey - и config
файл, содержащий тип ответа и регион. Нет необходимости явно определять или ссылаться на config
файл.