可在 CloudFormation 模板中重用的自定义变量

Custom variables for reuse in CloudFormation template

所以,在我对堆栈的想法中,我需要创建具有特定名称的所有资源,并且将在创建堆栈时根据参数形成,如下所示:

Param1: blue
Param2: car

因此,所有资源都将命名为blue-car,我需要在模板中对它们进行交叉引用。因此,例如,将有一个名为 'blue-car' 的存储桶,我将为该存储桶创建策略和角色。

我能否以某种方式定义一个自定义全局变量(或其他具有相同效果的变量),以便在每次需要此 NAME 时都能引用,或者我是否必须继续使用丑陋的 !Joins一直?

所以不要这样做:

Resource: 
  - !Join
    - 'arn:aws:s3:::'
    - - !FindInMap 
        - Naming
        - BasicPrefix
        - Name
      - '-'
      - !Ref BusinessUnitName
      - !Ref EnvType
  - !Join
    - 'arn:aws:s3:::'
    - - !FindInMap 
        - Naming
        - BasicPrefix
        - Name
      - '-'
      - !Ref BusinessUnitName
      - !Ref EnvType
    - '/*'

我可以这样做:

Resource: 
  - !Join
    - 'arn:aws:s3:::'
    - {$SomethingMoreHandy}
  - !Join
    - 'arn:aws:s3:::'
    - {$SomethingMoreHandy}
    - '/*'

做到这一点的唯一方法是让您开发自己的 macro,它会为您执行模板源代码操作以实现您想要的。