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

如何在Serverless Framework中同时使用SSM与本地文件的环境变量?

解决Serverless Framework同时配置SSM参数与本地环境变量的问题

你遇到的报错是因为YAML语法不允许在同一个environment映射下,同时混用显式键值对和文件展开语法。以下是两种可行的解决方案:

方案1:使用变量合并语法直接合并

利用Serverless的merge变量操作符,将本地文件的环境变量和SSM参数合并为一个对象:

functions:
  kinesisEvents:
    handler: kinesis_events_processing.lambda_handler
    name: kinesis-events-${self:provider.stage}
    package: {}
    maximumRetryAttempts: 2
    events:
      - stream:
          type: kinesis
          ... # 省略其他配置
    environment: ${merge(${file(${self:provider.stage}.yml)}, {
      DB_PASSWORD: ${ssm:/${self:provider.stage}/db/db_password},
      API_KEY: ${ssm:/${self:provider.stage}/api/internal_api_key}
    })}

方案2:将SSM参数引用移至本地环境文件

把机密参数的SSM引用直接写在对应环境的.yml文件中,这样environment只需引用该文件即可自动解析所有变量:

比如dev.yml内容:

DB_PASSWORD: ${ssm:/dev/db/db_password}
API_KEY: ${ssm:/dev/api/internal_api_key}
APP_ENV: dev
LOG_LEVEL: info

然后serverless.yml配置:

functions:
  kinesisEvents:
    ... # 其他配置
    environment: ${file(${self:provider.stage}.yml):}

两种方案都能实现将本地环境变量和SSM机密参数同时注入Lambda函数,根据你的配置习惯选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:39:46