Как переменные среды используются при развертывании на AWS - PullRequest
0 голосов
/ 25 октября 2019

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

Это приложение node.js, и я использую эластичный beanstalk в AWS для развертывания. Я просмотрел https://docs.aws.amazon.com/cloud9/latest/user-guide/env-vars.html#env-vars-env-list, но не уверен, какой вариант применим ко мне.

Файл .env, который у меня есть локально, содержит строки типа

PASSWORD = MYPASSWORD

, и я использую пакет dotenv с require ('dotenv'). Config ();в соответствующих файлах. Я обращаюсь к переменным среды в моем коде через такие вещи, как process.env.PASSWORD (используя вышеупомянутый пример строки в файле .env).

Я пробовал искать в нескольких местах, и мне предлагаются различные варианты, но я не уверен, какая из них применима к моим переменным среды.

1 Ответ

1 голос
/ 25 октября 2019

Ссылка, по которой вы переходите, может помочь вам в машине ec2, которой вы управляете, но если вы работаете с Elasticbeanstalk, я рекомендую использовать Конфигурация переменной среды, предоставляемаяasticbeanstalk .

Я не поддерживаю .env в случае Elasticbeanstalk, ECS и многих других сервисов, где AWS предоставляет простую и готовую функцию для установки переменной среды в конфигурации и .env среду записи в файл, которыйменее безопасен, чем системная переменная среды.

Интересная часть Elasticbeanstalk ENV состоит в том, что системная переменная среды имеет более высокую периферию, чем .env переменная среды, но лучше не размещать dotenv на эластичном стебле.

Свойства среды и другие настройки программного обеспечения

Вы можете использовать свойства среды для передачи секретов, конечных точек, параметров отладки и другой информации в ваше приложение. Свойства среды помогают запускать ваше приложение в нескольких средах для разных целей, таких как разработка, тестирование, подготовка и производство.

asticbeanstalk-deploy_nodejs

Example .ebextensions/options.config

option_settings:
  aws:elasticbeanstalk:application:environment:
    API_ENDPOINT: www.example.com/api

Теперь все, что вам нужно

var endpoint = process.env.API_ENDPOINT

Свойства среды

В разделе «Свойства среды» можно указать параметры конфигурации среды на запущенных экземплярах Amazon EC2. ваше приложение. Эти параметры передаются приложению в виде пар ключ-значение.

Внутри среды Node.js, работающей в AWS Elastic Beanstalk, вы можете получить доступ к переменным среды, используя process.env.ENV_VARIABLE, как в следующем примере.

var endpoint = process.env.API_ENDPOINT
...