Эластичный бобовый шлейф подключается к RDS из корпуса SSH

У меня есть приложение python на экземпляре EC2 Extract Beanstalk, который подключен к RDS PostgreSQL.

Мое приложение отлично работает и использует переменные среды, заданные Elastic Beanstalk для подключения к базе данных:

os.environ['RDS_DB_NAME']
os.environ['RDS_USERNAME']
os.environ['RDS_PASSWORD']
os.environ['RDS_HOSTNAME']
os.environ['RDS_PORT']

Однако это не работает, когда я вхожу в учетную запись EC2 с SSH. Переменные среды RDS не установлены. Поскольку мое приложение работает в браузере, я думаю, что это не могут быть группы безопасности. Я также пытался получить доступ к переменным с активированным virtualenv.

Как я могу сделать эластичный beanstalk для определения этих переменных, когда у меня есть SSH-соединение?

Ответ 1

Я понял, что это morgning:

Переменные среды не заданы в virtualenv, а другой script. Сначала вам нужно активировать virualenv, тогда вам нужно загрузить переменные, активировав env script в "текущем" каталоге. Вот так:

source /opt/python/run/venv/bin/activate
source /opt/python/current/env

Теперь переменные RDS Beanstalk устанавливаются и готовы к использованию любым script, который вы выполняете в SSH.

Ответ 2

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

cd /opt/elasticbeanstalk/bin
sudo ./get-config environment

Получить конфигурацию script позволяет получить доступ к большому количеству изменений в этих категориях:

optionsettings                   environment option settings that affect instance
container                        container specific configurations
addons                           addon configurations
environment                      environment variables
meta                             EB environment meta-data

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

Ответ 3

К сожалению, переменные окружения недоступны вне контейнера Elastic Beanstalk.

В качестве альтернативы вы можете добавить .profile файл в ec2-user home и установить для него такие переменные среды для сеансов SSH. Помните, что файл будет удален. Чтобы сделать его постоянным, добавьте profile файл в проект и скопируйте его в ec2-user с помощью команды container.