CloudFormation 是否可以跨嵌套堆栈共享条件定义?
Is it possible in CloudFormation to share Conditions definition across nested stack?
假设我想声明几个实际上可以跨嵌套资源使用的条件(在 CloudFormation 中)。这是一个非常简单的例子:
Parameters:
EnvType:
Type: String
Description: Environment type.
Default: test
AllowedValues: [test, dev]
ConstraintDescription : Must specify test or dev.
Conditions:
CreateTestEnvResources: !Equals [!Ref EnvType, test]
CreateDevEnvResources: !Equals [!Ref EnvType, dev]
是否有可能以某种方式跨嵌套堆栈资源传递此声明 (AWS::CloudFormation::Stack
)?或者唯一的方法是使用 EnvType
并在每个 Stack 中进行声明?
Or the only way is to use EnvType and make declaration in every Stack?
遗憾的是,这是唯一的方法。但是,如果您真的想消除此步骤,您可以为此在 CloudFormation 中开发一个 macro。尽管如此,在每个嵌套堆栈中重新声明 EnvType
仍然是最易读且最容易调试和实现的方式。
假设我想声明几个实际上可以跨嵌套资源使用的条件(在 CloudFormation 中)。这是一个非常简单的例子:
Parameters:
EnvType:
Type: String
Description: Environment type.
Default: test
AllowedValues: [test, dev]
ConstraintDescription : Must specify test or dev.
Conditions:
CreateTestEnvResources: !Equals [!Ref EnvType, test]
CreateDevEnvResources: !Equals [!Ref EnvType, dev]
是否有可能以某种方式跨嵌套堆栈资源传递此声明 (AWS::CloudFormation::Stack
)?或者唯一的方法是使用 EnvType
并在每个 Stack 中进行声明?
Or the only way is to use EnvType and make declaration in every Stack?
遗憾的是,这是唯一的方法。但是,如果您真的想消除此步骤,您可以为此在 CloudFormation 中开发一个 macro。尽管如此,在每个嵌套堆栈中重新声明 EnvType
仍然是最易读且最容易调试和实现的方式。