Boto:如何使用AutoScalingGroup方法的'tag'参数?

时间:2014-02-13 22:25:35

标签: amazon-web-services boto autoscaling

以下代码有效。换句话说,没有返回错误并创建了一个组。但是,此组启动的实例不会有Name标记。

AS_GROUP = AutoScalingGroup(
    group_name=AS_GROUP_NAME,
    availability_zones=ZONE_LIST,
    launch_config=LAUNCH_CONFIG_NAME,
    min_size=GROUP_MIN_SIZE,
    max_size=GROUP_MAX_SIZE,
    default_cooldown=DEFAULT_COOLDOWN,
    desired_capacity=DESIRED_CAPACITY,
    tag=[Tag(
            key='Name',
            value='ASG Minion',
            propagate_at_launch=True,
            resource_id=AS_GROUP_NAME)],
    )
AS_CONNECTION.create_auto_scaling_group(AS_GROUP)

我在没有Tag的情况下尝试了resource_id方法。

[Tag(key="Name", value="ASGMinion", propagate_at_launch=True)]

其他明显错误的方法我也尝试过:

tag='k=Name, v=ASGMinion, p=true',
tag=['k=Name, v=ASGMinion, p=true'],
tag=[Tag('k=Name, v=ASGMinion, p=true')],

没有用。

当然,我可以在创建组后运行它:

tag = Tag(key='Name', value=tag_name, propagate_at_launch=True, resource_id=groups[group_number].name)
asConnection.create_or_update_tags([tag])

但这违背了tag方法中AutoScalingGroup参数的要点。

1 个答案:

答案 0 :(得分:2)

嗯,这是相当尴尬的。主要问题是参数的正确名称是tags而不是tag。一旦我解决了这个问题,我就可以查看这个参数正在寻找的值。这是有效的:

tags=[Tag(
        key='Name',
        value='ASG Minion',
        propagate_at_launch=True,
        resource_id=AS_GROUP_NAME)],
)

我在没有resource_id的情况下也尝试了它,它抱怨Invalid resourceID: None。因此,即使组是在同一时间创建的,也需要在标记中指定组名。希望这对其他人有帮助。