Amazon cloudformation Fn::基于云形成参数环境的If条件
基于环境,我正在尝试设置变量的URL:如果prod,则我的URL应该是: 以下是我的情况:Amazon cloudformation Fn::基于云形成参数环境的If条件,amazon-cloudformation,Amazon Cloudformation,基于环境,我正在尝试设置变量的URL:如果prod,则我的URL应该是: 以下是我的情况: Conditions: IsEnvProd: Fn::Equals [ !Ref Env, 'prod' ] IsEnvStage: Fn::Equals [ !Ref Env, 'stage' ] 以下是对其进行评估的地方: Environment: - Name: NODE_ENV Value: !Ref NodeEnv
Conditions:
IsEnvProd: Fn::Equals [ !Ref Env, 'prod' ]
IsEnvStage: Fn::Equals [ !Ref Env, 'stage' ]
以下是对其进行评估的地方:
Environment:
- Name: NODE_ENV
Value: !Ref NodeEnv
- Fn::If:
- IsEnvStage
- Name: CORE_URL
Value:
Fn::Join:
- ""
- - "https://"
- "staging"
- "."
- !Ref DnsHostedZoneName
- Name: NCVCORE_URL
Value:
Fn::Join:
- ""
- - "https://"
- !Ref DnsHostedZoneName
我得到以下错误:
Template format error: Conditions can only be boolean operations on parameters and other conditions
如果没有完整的模板,很难尝试重新创建该问题,但是在这里,您的代码片段被重构,并删除了一个可能的错误 调整条件以使用所有速记
Conditions:
IsEnvProd: !Equals [!Ref "Env", "prod"]
IsEnvStage: !Equals [!Ref "Env", "stage"]
YAML中还有一个额外的空间,因此该空间已被删除并重新格式化
Environment:
- Name: "NODE_ENV"
Value: !Ref "NodeEnv"
- !If
- "IsEnvStage"
- Name: "CORE_URL"
Value: !Sub "https://staging.${DnsHostedZoneName}"
- Name: "NCVCORE_URL"
Value: !Sub "https://${DnsHostedZoneName}"
如果没有完整的模板,很难尝试重新创建该问题,但是在这里,您的代码片段被重构,并删除了一个可能的错误 调整条件以使用所有速记
Conditions:
IsEnvProd: !Equals [!Ref "Env", "prod"]
IsEnvStage: !Equals [!Ref "Env", "stage"]
YAML中还有一个额外的空间,因此该空间已被删除并重新格式化
Environment:
- Name: "NODE_ENV"
Value: !Ref "NodeEnv"
- !If
- "IsEnvStage"
- Name: "CORE_URL"
Value: !Sub "https://staging.${DnsHostedZoneName}"
- Name: "NCVCORE_URL"
Value: !Sub "https://${DnsHostedZoneName}"
通常,定义的条件用作aws资源的属性,您可以将条件的名称指定为值。你可以试试——它是一个在线云信息模板生成器。这会消耗大量此类可怕的工作。通常,定义的条件用作aws资源的属性,您可以将条件的名称指定为值。你可以试试——它是一个在线云信息模板生成器。它带走了许多这样可怕的工作