我可以在参数部分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
...
上找不到任何相关信息
答案 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