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 仍然是最易读且最容易调试和实现的方式。