在cloudformation模板中的不同资源类型之间共享标签

时间:2019-08-30 18:46:16

标签: yaml amazon-cloudformation aws-sam

我正在尝试编写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

有人知道有什么方法可以实现吗?

1 个答案:

答案 0 :(得分:0)

这是CloudFormation不能很好完成的事情。查看AWS CDK。它允许您编写生成CloudFormation的代码。您的CloudFormation仍然是重复的,但是您无需查看或维护它,并且只能在CDK中描述标签一次

相关问题