Terraform - Elastic Beanstalk - Как поменять URL среды - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь выполнить сине-зеленое развертывание с помощью терраформ / эластичного бобового стебля.Как бы один URL-адрес среды обмена с этим стеком?Я не вижу здесь ничего очевидного.

Лучшее, что я могу придумать, это ...

  • запуск терраформы для ускорения всей моей архитектуры
    • раскручивает aws_elastic_beanstalk_environment синюю среду
  • Если вы хотите развернуть новую версию приложения, запустите terraform apply module.elasticbeanstalk.aws_elastic_beanstalk_environment.green, чтобы ускорить только другой ресурс aws_elastic_beanstalk_environment
  • Теперь у меня есть синий и зеленый.Время для фактической замены URL-адресов ...
    • через командную строку eb swap API, обмен двух URL-адресов среды
    • обновление tfstate вручную
    • terraform push новое состояние

Мне бы очень понравилось, если бы было решение, при котором мне не нужно было вручную манипулировать состоянием.Или это единственный способ выполнить эту функцию с помощью этих двух инструментов?

Ответы [ 2 ]

0 голосов
/ 21 августа 2019

Полагаю, вы просто переключаете префикс cname каждого

0 голосов
/ 28 мая 2018

Если вы хотите обновить состояние после перестановки, вы можете отметить идентификаторы сред beanstalk и сделать:

# Remove the old state information, using the command line not manually
terraform state rm module.elasticbeanstalk.aws_elastic_beanstalk_environment.blue
terraform state rm module.elasticbeanstalk.aws_elastic_beanstalk_environment.green

# Import these to the opposite environment resources
terraform import module.elasticbeanstalk.aws_elastic_beanstalk_environment.blue <green id>
terraform import module.elasticbeanstalk.aws_elastic_beanstalk_environment.green <blue id>

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

...