Используйте boto для обновления параметров среды ElasticBeanstalk
В Boto есть функция update_environment, которая позволяет пользователю обновлять параметры в среде AWS ElasticBeanstalk.
С помощью интерфейса командной строки AWS это обычно выполняется следующим образом:
aws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=1
В Boto update_environment принимает параметр List для option_settings, как описано здесь:
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
Кто-нибудь знает, каков правильный формат для списка?
2 ответа
Разобрался, посмотрев исходный код Python для boto. Правильный формат:
option_settings=[("aws:autoscaling:asg","MinSize","1"),("aws:autoscaling:asg","MaxSize","4")]
Этот код работает у меня.
попробуйте: client = boto3.client('elasticbeanstalk', Region_name=AWS_REGION) response = client.update_environment( EnvironmentName='envname', OptionSettings=[ { 'Namespace': 'aws:autoscaling:asg:launchconfiguration', 'OptionName': 'MinSize', 'Value': '0' }, { 'Namespace': 'aws:autoscaling:asg:launchconfiguration', 'OptionName': 'MaxSize', 'Value': '0' } ],), за исключением ClientError as ошибка: print("Не удалось обновить среду.\n" + str(err)) return False return True