在CloudFormation模板中给一个EC2实例命名?

66
我有一个模板可以生成堆栈,但是我找不到设置属性或其他允许我为创建的EC2实例指定名称的方法。在生成时,名称为空白。

我的评论不是关于模板的,但这是我发现关于命名EC2实例的唯一问题,所以我在这里写了这个。您可以通过选择实例并选择"操作" => "编辑标记"来为实例命名,并添加一个Name标记(区分大小写)。此外,如果您将鼠标悬停在Name列的空白字段上,会出现一个小铅笔图标,您可以点击它直接编辑标记。 - Emery Lapinski
1个回答

105

您需要向CloudFormation模板添加一个关键字为Name的标签,就像这样...

"ec2-instance" : {
    "Type" : "AWS::EC2::Instance",
    "Properties" : {
        "ImageId" : "ami-0102022,
        "SecurityGroupIds" : [{ "Ref" : "SecurityGroup" }],
        "SubnetId" : { "Ref" : "Subnet" },
        "InstanceType" : "m1.medium",
        "Tags" : [
            {"Key" : "Name", "Value" : "Instance name"},
            {"Key" : "Environment", "Value" : { "Ref" : "Environment" }},
            {"Key" : "Owner", "Value" : { "Ref" : "Owner" }}
        ]
    }
}

11
请注意,如果您使用自动扩展组,标签需要添加到自动扩展组属性中,并且属性“PropagateAtLaunch”应设置为“true”。 - WispyCloud
@jtblin,你能给一些指导吗?我正在寻找有关PropogateAtLuanch的更多信息,以及为什么需要将其设置为true。 - John Smith
6
@JohnSmith 只需谷歌一下,第一个结果是http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html。 > PropagateAtLaunch:如果您希望AWS CloudFormation将标记复制到作为自动缩放组的一部分启动的EC2实例上,则设置为true。 如果您只想将标记附加到自动缩放组而不复制到作为自动缩放组的一部分启动的任何实例,则设置为false。 必需:是。 类型:布尔值。 < 基本上,如果您有一个自动缩放组并且希望将标记添加到实例中,则需要将此属性设置为“true”。 - WispyCloud
2
感谢@jtblin。我认为我的困惑在于何时以及如何使用该属性。我阅读了文档,并找到了一个示例,显示它不仅仅是键值对。PropagateAtLaunch是集合中的第三个值。{"Key":"Name","Value":"Instance name","PropagateAtLaunch":true}。还值得注意的是,我不必在ec2-instance块中添加任何标记。一切都设置在自动缩放组中。 - John Smith
@Pete,你能指出在CloudFormation文档中这个信息的位置吗?我的意思是它确实起作用(谢谢!),但我很沮丧在官方文档中找不到这个信息。 - Cédric Van Rompay
当时并不是这样的。我是通过试错来解决的。(哇,这是一个古老的答案!!) - Pete - MSFT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接