Как не устанавливать внешнюю конфигурацию aws в качестве переменной env при использовании динамо - PullRequest
0 голосов
/ 20 ноября 2018

Моя конфигурация aws не будет работать, если я не установлю ее внешне через переменную env

Соединение с БД работает, только если я устанавливаю учетные данные внешне,

export AWS_ACCESS_KEY_ID=abcde
export AWS_SECRET_ACCESS_KEY=abcde
export AWS_REGION=ap-south-1
export AWS_DYNAMODB_ENDPOINT="http://localhost:8000"

Не работаетесли я не установлю это внешне.Например, если я установлю его в коде, подобном следующему, он не будет работать.

dynamoose.AWS.config.update({
  accessKeyId:'abcde',
  secretAccessKey:'abcde',
  region:'ap-south-1',
  endpoint:'http://localhost:8000'
});

Я не хочу устанавливать config в любой переменной извне.Есть ли способ просто управлять этим в коде nodejs?

Это альтернативы, которые я пробовал / рассматривал

  1. Установка переменной env в коде, это не такработать либо

    process.env.AWS_REGION = 'ap-south-1';

  2. Я читал про пакет дотенв.Но рекомендуется использовать его только для разработчиков, а не для производства (я не уверен, что это сработает)

Пожалуйста, помогите мне решить эту проблему.Как мне управлять конфигом только в коде?

1 Ответ

0 голосов
/ 21 ноября 2018

Проблема, вероятно, в том, что вы создаете или запрашиваете модели Dynamoose перед запуском метода dynamoose.AWS.config.update.

Убедитесь, что dynamoose.AWS.config.update - это самый первый вызываемый метод, и вы нераньше создавал или инициализировал любые связанные с Dynamoose вещи.

Например.

const dynamoose = require('dynamoose');
dynamoose.AWS.config.update({
  accessKeyId:'abcde',
  secretAccessKey:'abcde',
  region:'ap-south-1',
  endpoint:'http://localhost:8000'
});
const Model = require('./models/MyModel'); // should happen after `dynamoose.AWS.config.update`

Еще один трюк, который я бы попытался сделать, - включить ведение журнала отладки и просмотреть журналы, чтобы увидеть, что происходит.Вы можете включить ведение журнала Dynamoose, запустив export DEBUG=dynamoose*, а затем повторно запустив скрипт.

...