jbe*_*man 2 amazon-ec2 boto autoscaling
我有一个脚本需要使用新的LaunchConfiguration更新一个名为AutoScalingGroup的新的刚刚创建的AMI.不幸的是文档不好,我厌倦了反复试验.这是我到目前为止:
build_autoscale_name = "build_autoscaling"
build_autoscale_lc = LaunchConfiguration(
...launch config stuff...
, image_id=imid # new AMI
)
as_conn.create_launch_configuration(build_autoscale_lc)
ag = AutoScalingGroup(
group_name=build_autoscale_name
, launch_config=build_autoscale_lc
...other ASG stuff...
)
as_conn.create_auto_scaling_group(ag)
Run Code Online (Sandbox Code Playgroud)
失败的最新方式是:
通过此名称启动配置已存在
如果我发表评论,那么create_launch_configuration()我得到:
此名称的AutoScalingGroup已存在
我看到AutoScalingGroup有一个update方法; 我是否需要get_all_groups()使用具有相同名称的新LaunchConfiguration进行更新?或者,如果我LaunchConfiguration每次创建一个新命名(即我会遇到某种限制),这是否重要?
我在尝试更新现有的自动缩放组时遇到了类似的问题,并设法使用您在原始帖子中建议的过程对其进行排序:使用get_all_groups()以获取自动缩放组,然后calling update()在更新属性后使用该对象.
完整示例:
autoscaling_group_name = 'my-test-asg'
launch_config_name = 'my-test-lc'
launch_config = LaunchConfiguration( name=launch_config_name,
image_id=image_id,
key_name=ssh_key_name,
security_groups=security_groups,
user_data=user_data,
instance_type=instance_type,
associate_public_ip_address=associate_public_ip )
as_group = as_conn.get_all_groups(names=[autoscaling_group_name])[0]
setattr(as_group, launch_config_name, launch_config)
as_group.update()
Run Code Online (Sandbox Code Playgroud)