我正在尝试编写SAM模板,以具有触发Lambda函数的IoT规则。我使用的帐户出于计费原因,要求使用一长串标识符标记所有资源。这些总是相同的,为每个资源重复复制它们似乎很可惜。 SAM允许在一种资源类型之间共享全局变量(因此每个Function可以共享标签),但是我没有看到在资源类型之间应用全局标签的好方法。
我考虑过使用Parameter并尝试引用它,但是没有允许标签的键/值结构的受支持参数类型。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html
我想做这样的事情:
Parameters:
UniversalTags:
Type: KeyValueObject
Default:
-
Key: "Name"
Value: "my name"
-
Key: "Manager"
Value: "my manager"
-
Key: "Market"
Value: "my market"
-
Key: "Engagement Office"
Value: "location"
-
Key: "Email"
Value: "email@test.com"
Resources:
IoTProcessingFunction:
Type: AWS::Serverless::Function
Properties:
Tags: !Ref UniversalTags
IoTRule:
Type: AWS::IoT::TopicRule
Properties:
Tags: !Ref UniversalTags
有人知道有什么方法可以实现吗?
答案 0 :(得分:0)
这是CloudFormation不能很好完成的事情。查看AWS CDK。它允许您编写生成CloudFormation的代码。您的CloudFormation仍然是重复的,但是您无需查看或维护它,并且只能在CDK中描述标签一次