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

Amplify Gen2中Lambda函数无法读取环境变量的问题求助

问题:Amplify Lambda无法读取控制台配置的环境变量

已执行操作:

  • 按官方文档定义Lambda函数:
export const dailyNotification = defineFunction({
  name: 'daily-notification',
  entry: './handler.ts',
  environment: {
    TESTZG: process.env.TESTZG ?? 'default',
  }
});
  • 在处理器中通过生成的env访问环境变量:
import { env } from '$amplify/env/daily-notification';
// ...
console.log(`TESTZG, ${env.TESTZG}`);
  • 已在Amplify控制台添加环境变量TESTZG=test
  • 已更新控制台构建设置
  • 根目录创建了包含该变量的.env.local文件
  • 使用npx ampx sandbox部署后,Lambda日志输出TESTZG, default!,未读取到控制台设置的值
解决步骤
  • 确认环境变量作用范围
    在Amplify控制台添加变量时,要选对后端环境,且勾选目标Lambda函数(daily-notification)的作用范围,否则变量不会注入到函数中。

  • 修正构建设置的变量传递
    在Amplify控制台的amplify.yml构建阶段,确保变量被传递到构建流程:

build:
  commands:
    - export TESTZG=$TESTZG
    - npx ampx deploy

或者直接在控制台构建设置的环境变量列表中添加TESTZG,保证构建过程能读取到控制台配置的值,这样函数定义里的process.env.TESTZG才能正确获取。

  • 排除本地文件干扰
    .env.local仅作用于本地开发,部署时不会上传。部署时要确保Amplify控制台的变量能覆盖函数定义中的默认值,这依赖构建流程正确传递控制台变量。

  • 重新触发完整部署
    修改环境变量或构建设置后,手动在Amplify控制台触发部署,或执行npx ampx deploy --force强制重新部署后端资源,确保新变量注入到Lambda。

  • 验证Lambda的变量配置
    部署完成后,进入AWS Lambda控制台找到目标函数,查看「配置-环境变量」,确认TESTZG存在且值为test。如果不存在,检查Amplify部署日志,排查变量同步错误。

  • 核对变量键名大小写
    确保函数定义中的环境变量键名和控制台完全一致(大小写敏感),比如控制台是TESTZG,函数里不能写成testzg。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:13:12