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

aws cloudformation deploy传参提示YML属性不匹配Number类型如何解决

解答

是的,aws cloudformation deploy 命令的 --parameter-overrides 传入的所有参数值默认都会被AWS CLI处理为字符串类型。你可以按照以下步骤解决类型不匹配的问题:

  • 第一步:在CloudFormation/SAM模板的Parameters区段明确声明ExcTime参数的类型为Number,示例配置如下:
Parameters:
  ExcTime:
    Type: Number
    Description: AppSync API密钥的过期时间戳

只要你在参数定义中指定了类型为Number,CloudFormation在部署时会自动将CLI传入的符合数字格式的字符串转换为Number类型,不需要额外调整传参命令。

  • 第二步:修正模板中参数引用的写法,改用CloudFormation内置函数!Ref引用参数,保证参数类型被正确识别:
ApiKey:
  Type: AWS::AppSync::ApiKey
  Properties:
    ApiId: !GetAtt AppSyncApi.ApiId
    Expires: !Ref ExcTime

如果因为特殊场景必须保留${ExcTime}这种字符串替换的写法,只要替换后的内容是纯数字,YAML会自动识别为数值类型,但该方式稳定性不如显式定义参数类型+!Ref引用的方案,更推荐使用前者。

如果上述方案仍然存在传参解析异常,可以改用参数配置文件的方式传参:

  1. 创建JSON格式的参数文件params.json:
[
  {
    "ParameterKey": "ExcTime",
    "ParameterValue": "12345"
  }
]
  1. 调整部署命令为:
    aws cloudformation deploy --template-file sam-template.packaged.yaml --parameter-overrides file://params.json

内容的提问来源于stack exchange,提问作者Michal Ružička Ružička

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:06:03