![使用 boto 更新 ElasticBeanstalk 环境选项](https://linux22.com/image/666965/%E4%BD%BF%E7%94%A8%20boto%20%E6%9B%B4%E6%96%B0%20ElasticBeanstalk%20%E7%8E%AF%E5%A2%83%E9%80%89%E9%A1%B9.png)
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