AWS делит ресурсы между UAT и PROD
Я использую AWS Elastic Beanstalk для развертывания системы. Это все работает отлично. Если мне нужна среда UAT и PROD, я могу просто установить 2 разных приложения с эластичными бобовыми стеблями, это также отлично работает. Теперь мой вопрос: скажем, мое приложение использует корзины динамо-DB или S3 (что-то вне развертывания EB). Как мне использовать их разные версии для UAT и PROD?
Принимая динамо: у вас есть экземпляр БД динамо, а не один на развертывание EB. Мой код записывал бы в таблицу 'users', но как остановить UAT и PROD, используя одну и ту же таблицу пользователей, если есть только одна DynamoDB?
То же самое с ведрами S3? В идеале вы хотите prod.mybucket.xxx и uat.my bucket.xxx
Я явно что-то упускаю, вы можете сказать мне, что?:)
1 ответ
Вы можете использовать переменные среды Elastic Beanstalk (этот пример для java, но он похож на другие языки). Используйте его для отслеживания типа среды (например, PARAM1=dev или PARAM1=uat), а затем присвойте другим ресурсам (бункерам / таблицам динамо) имя с этим префиксом.
s3 bucket -> prod-myapp-bucket / uat-myapp-bucket
В своем коде просто возьмите param1 в начальной загрузке и таким образом откройте ваши ресурсы aws. Вот как beanstalk сообщает вашему приложению, к какой базе данных подключаться (в Java это JDBC_CONNECTION_STRING).
ИЛИ ЖЕ
Вы можете использовать AWS api для запроса фактического имени среды Elastic Beanstalk, чтобы сделать что-то похожее (в зависимости от того, какой язык вы используете, это что-то вроде "Опишите среду").