You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取CloudFormation中Condition的评估值?输出引用报错求助

解决AWS CloudFormation中无法直接引用Condition评估结果的问题

错误原因

!Ref仅能引用CloudFormation的资源、参数或伪参数,而CreateBucket是Condition(条件),不属于上述可引用范畴。直接用!Ref CreateBucket会被解析为未定义的资源,导致模板验证报错。

解决方案

要获取Condition的评估结果,你可以在Outputs中直接复用Condition的逻辑表达式,让CloudFormation重新计算该条件的布尔值:

修改后的完整模板示例:

Parameters:
  BucketName:
    Default: ''
    Type: String
Conditions:
  CreateBucket: !Not 
    - !Equals 
      - !Ref BucketName
      - 'skip'
Resources:
  Bucket:
    Type: 'AWS::S3::Bucket'
    Condition: CreateBucket
Outputs:
  CreateBucketResult:
    Description: "CreateBucket条件的评估结果"
    Value: !Not 
      - !Equals 
        - !Ref BucketName
        - 'skip'
    Export:
      Name: "CreateBucketResult"

验证与效果

修改后执行aws cloudformation validate-template --template-body file:"bucket.yml"即可通过验证。部署栈后,Outputs中的CreateBucketResult会返回布尔值(true或false),与CreateBucket条件的实际评估结果完全一致。

内容的提问来源于stack exchange,提问作者rfg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 04:10:28