可在 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,它会为您执行模板源代码操作以实现您想要的。
所以,在我对堆栈的想法中,我需要创建具有特定名称的所有资源,并且将在创建堆栈时根据参数形成,如下所示:
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,它会为您执行模板源代码操作以实现您想要的。