使用 boto 更新 ElasticBeanstalk 环境选项

使用 boto 更新 ElasticBeanstalk 环境选项

Boto 有一个功能,update_environment,允许用户更新 AWS ElasticBeanstalk 环境中的选项。

使用 AWS CLI,通常会按如下方式执行操作:

aws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=1

在 Boto 中,update_environment 采用 option_settings 的 List 参数,如下所述:

http://boto.readthedocs.org/en/latest/ref/beanstalk.html

update_environment(environment_id=None, environment_name=None, version_label=None, template_name=None, description=None, option_settings=None, options_to_remove=None, tier_name=None, tier_type=None, tier_version='1.0')

我尝试过各种传递字符串的方法

Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=1

作为列表,但似乎都不起作用。API 一直告诉我:

Invalid option specification 

有人知道该列表的正确格式是什么吗?

答案1

通过查看 boto 的 Python 源代码找到了答案。正确格式为:

option_settings=[("aws:autoscaling:asg","MinSize","1"),("aws:autoscaling:asg","MaxSize","4")]

答案2

这是对我有用的代码。

尝试:客户端 = boto3.客户端('elasticbeanstalk',region_name = AWS_REGION)响应 = 客户端。update_environment(EnvironmentName ='envname',OptionSettings = [{'命名空间':'aws:autoscaling:asg:launchconfiguration','OptionName':'MinSize','值':'0'},{'命名空间':'aws:autoscaling:asg:launchconfiguration','OptionName':'MaxSize','值':'0'}],)除 ClientError 为 err:print(“无法更新环境。\ n”+ str(err))返回 False 返回 True

相关内容