我可以在参数部分AWS CloudFormation模板中将标记定义为参数

时间:2018-03-07 10:36:59

标签: amazon-web-services templates yaml amazon-cloudformation

我可以在参数部分AWS CloudFormation模板中将标记定义为参数,并在每个创建的资源中使用它吗?

我目前的模板:

AWSTemplateFormatVersion: 2010-09-09
Description: "Some information"
Parameters:
  Test1:
    Type: String
    Description: Test1
    Default: t1
  Test2:
    Type: String
    Description: Test2
    Default: t2

...

LBSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
  GroupDescription: "Enable access to app loadbalancer"
  Tags:
    - Key: Name
      Value: !Join
        - ""
        - - !Ref Test1
          - !Ref Test2
    - Key: Test1
      Value: !Ref Test1
    - Key: Test2
      Value: !Ref Test2

我对任何其他资源使用相同的标记(AWS :: ElasticLoadBalancing :: LoadBalancer,AWS :: AutoScaling :: AutoScalingGroup等),它似乎是重复的代码(每次创建新资源时)。我可以制作这样的东西吗?:

AWSTemplateFormatVersion: 2010-09-09
Description: "Some information"
Parameters:
  Test1:
    Type: String
    Description: Test1
    Default: t1
  Test2:
    Type: String
    Description: Test2
    Default: t2
  Tag:
    #define all tags, which I created above 

...

LBSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
  GroupDescription: "Enable access to app loadbalancer"
  Tags: !Ref Tag

...

很遗憾,我在https://docs.aws.amazon.com/

上找不到任何相关信息

1 个答案:

答案 0 :(得分:1)

您可以将标记应用于堆栈,它们将传播到资源。

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html

  

所有堆栈级标记(包括自动创建的标记)都会传播到AWS CloudFormation支持的资源。目前,标签不会传播到通过块设备映射创建的Amazon EBS卷。

例如:

aws cloudformation create-stack --stack-name my-stack
                                --template-url <template>
                                --parameters ParameterKey=Param1,ParameterValue=Value1
                                --tags Key=Tag1,Value=Value1