我想在午夜终止我的一个Elastic Beanstalk环境,并在每天早上恢复它。
所以我跟着this tutorial设置了lambda函数和CloudWatch事件。
在教程中我发现有一件事很奇怪。本教程使用rebuild_environment
函数来恢复EB环境。 document of this function说,rebuild_environment
将首先删除EB环境,而不是创建与EB环境相关的所有资源。
当我运行rebuild_environment
时,我得到了No Environment found for EnvironmentName = 'my-eb-environment-name'
错误。这是因为my-eb-environment-name
已经在午夜终止了。
使用boto3
恢复终止EB环境的正确方法是什么?
终止您的Elastic Beanstalk环境,并使用EnvironmentId
而不是EnvironmentName
调用boto3的重建功能
它应该工作。我认为EnvironmentName仅用于在非终止的Elastic Beanstalk环境上进行重建
您还可以在终止后的六周(42天)内重建已终止的环境。重建时,Elastic Beanstalk会尝试创建具有相同名称,ID和配置的新环境。
只是beware的罕见情况
除非您在终止环境中使用自己的自定义域名,否则环境将使用elasticbeanstalk.com的子域。这些子域在Elastic Beanstalk区域内共享。因此,它们可以被同一地区的任何客户创建的任何环境使用。当您的环境终止时,另一个环境可以使用其子域。在这种情况下,重建将失败。