我试图用terraform / elastic beanstalk完成蓝/绿部署。如何使用此堆栈交换环境URL?我在这里看不到任何明显的东西。
我能想到的最好的是......
aws_elastic_beanstalk_environment
的蓝色环境terraform
apply module.elasticbeanstalk.aws_elastic_beanstalk_environment.green
以仅启动其他aws_elastic_beanstalk_environment资源eb swap
API,交换两个环境URL terraform push
新州如果有一个解决方案我不必手动操纵状态,我会很高兴。或者这是使用这两个工具完成此功能的唯一方法吗?
答案 0 :(得分:0)
我相信您只需切换每个cname prefix
答案 1 :(得分:-1)
如果您想在交换后更新状态,可以记下beanstalk环境的ID并执行:
# 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>
这看起来并不完美,但它确实避免了需要手动操作状态文件,并且可以轻松编写脚本。