【问题标题】:Updating an AutoScalingGroup with a new LaunchConfiguration in boto在 boto 中使用新的 LaunchConfiguration 更新 AutoScalingGroup
【发布时间】:2016-09-09 13:37:52
【问题描述】:

我有一个脚本需要使用新的 LaunchConfiguration 为一些新创建的 AMI 更新命名的 AutoScalingGroup。不幸的是,文档不好,我厌倦了反复试验。这是我目前所拥有的:

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)

最新的失败方式是:

此名称的启动配置已存在

如果我注释掉create_launch_configuration(),我会得到:

此名称的 AutoScalingGroup 已存在

我看到 AutoScalingGroup 有一个update 方法;我是否需要 get_all_groups() 然后使用同名的新 LaunchConfiguration 进行更新?或者我是否每次都创建一个新命名的LaunchConfiguration(即我会遇到一些限制)?

【问题讨论】:

    标签: amazon-ec2 boto autoscaling


    【解决方案1】:

    我在尝试更新现有的自动缩放组时遇到了类似的问题,并设法按照您在原始帖子中建议的过程对其进行了整理:使用get_all_groups() 获取自动缩放组,然后使用@987654322更新属性后对象上的@。

    完整示例:

    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()
    

    【讨论】:

    • launch_config 定义后未在此代码中使用?
    • @Sirex - 是的,我现在已经修好了(两年后,哈哈)
    【解决方案2】:

    我不熟悉boto,但我可以清除一些关于 AWS 中的自动缩放的疑虑。要更新自动缩放组的启动配置,您必须创建新的启动配置并更新自动缩放组的启动配置。您可以为 launchconfig 保留两个名称。因此,如果第一个名称正在使用中,则删除具有第二个名称的启动配置,并在该更新自动缩放组之后创建一个具有第二个名称的新配置,如果使用中的启动配置具有第二个名称,则相同。因此,您一次只有两个启动配置。

    希望我正确理解了您的问题。

    【讨论】:

    • 感谢您的指导。我可能会用两个启动配置尝试这种方法。真可惜,这太笨重了!
    猜你喜欢
    • 2017-07-16
    • 2021-11-09
    • 2022-07-08
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2020-01-03
    • 1970-01-01
    相关资源
    最近更新 更多