Установить переменные окружения из строки пар ключ / значение - PullRequest
1 голос
/ 07 марта 2019

Я использую AWS Secrets Manager для извлечения некоторых переменных среды в процессе развертывания веб-приложения React CloudFront.Я не написал тонны javascript - и я пытаюсь найти лучший способ извлечь значения из моей строки «секретов» и установить их в качестве переменных среды.

Для некоторого контекста яв состоянии нормально подключиться к AWS-SDK и получить мои секреты - они выглядят так:

console.log(secret)
> {"JOE":"https://joe.com","MIKE":"http://mike.com"}

Первое удивление пришло, когда я решил проверить тип своего секрета и пришел узнать, что javascript - этооценивая его как строку:

console.log(typeof secret);
> string

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

Сначала я попробовал метод 'modules.export' - я сделал что-то вроде:

module.exports = secret;

if(process.env.JOE) {
    console.log('It is set!');
}
else {
    console.log('No set!');
}

Конечно, это было слишком хорошо, чтобы быть правдой - и, похоже, не сработало, как я надеялся.

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

console.log(secret["JOE"]);
> undefined

Не повезло.

Я пробовал множество других простых встроенных методов javascript, но, похоже, не добился никакого прогресса.Правильно ли я считаю, что сначала мне нужно загрузить это в словарь, а затем, возможно, использовать modules.export, чтобы установить каждый ключ / пару в dict как переменные среды?

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Данные с веб-серверов всегда будут возвращаться в виде строки, независимо от ее формата. Ссылка на эту ссылку: https://www.w3schools.com/js/js_json_parse.asp Это должно преобразовать данные в формат JSON, который затем можно рассматривать как обычный объект JavaScript.

Надеюсь, это поможет!

1 голос
/ 07 марта 2019

Это похоже на строку JSON. Просто позвоните JSON.parse(secret), и он даст вам ожидаемый объект.

...