Как загрузить конфиг из ~/.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() не будет работать, пока не истечет срок действия токена сеанса.

Для этого есть документация:

Я бы порекомендовал установить инструмент 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 файл.

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