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

如何在多AWS SAM模板文件间传递参数并在部署时覆盖默认值

SAM嵌套子模板参数传递失效解决方案

参数不生效的核心原因是:sam deploy传入的参数默认只会传递给根模板(也就是你的template.yaml),不会自动下发到嵌套的子模板,需要你手动在根模板中配置参数透传逻辑。

步骤1:修改主模板template.yaml,新增参数定义与透传配置

修改后的主模板参考如下:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  Sample SAM Template

# 新增:主模板先定义和子模板一致的参数
Parameters:
  Environment:
    Description: 部署环境
    Type: String
    Default: 'develop'

Resources:
  MyLambda:
    Type: AWS::Serverless::Application
    Properties:
      Location: ./lambda_template.yaml
      # 新增:将主模板接收的参数透传给子模板
      Parameters:
        Environment: !Ref Environment

步骤2:执行部署命令即可生效

你之前的两种命令写法都是合法的,配置完主模板后直接执行即可覆盖默认值:

sam deploy ... --parameter-overrides Environment=QA

如果需要传递多个参数,用空格分隔即可:

sam deploy ... --parameter-overrides Environment=QA OtherParam=test
  • 注意事项:如果子模板有多个自定义参数,需要在主模板中同步定义所有参数,并且在嵌套应用的Parameters字段中逐个透传,才能实现命令行覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:42:01