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

NextJS v14+AWS预注册Lambda函数报错及权限配置问题

问题1:缺少GRAPHQLAPIKEYOUTPUT环境变量

原因分析

你的API可能未启用API Key认证模式,或者Amplify在配置函数权限时未自动注入该变量。

解决步骤

  • 检查API认证配置:运行amplify api update,选择你的GraphQL API,进入认证设置,确认是否已启用API Key认证。如果没有,添加API Key并完成配置后重新部署(amplify push)。
  • 手动添加环境变量:
    1. 运行amplify status,找到你的API对应的API Key值;或者登录AWS Amplify控制台,进入API详情页复制API Key。
    2. 运行amplify function update,选择你的函数,进入环境变量配置选项,手动添加API_<MY_API_NAME>_GRAPHQLAPIKEYOUTPUT,值为刚才复制的API Key。
    3. 执行amplify push使配置生效。
问题2:ESM模块下require未定义错误

核心冲突

自动生成的index.js使用CommonJS语法(require),但你的custom.js或函数package.json配置了ESM模式("type": "module"),导致语法冲突。

可选解决方案

方案1:切换为CommonJS模式

  • 打开函数目录下的package.json,删除"type": "module"字段(如果存在),这样整个函数项目默认使用CommonJS规范,require语法可正常使用,同时Node.js 18原生fetch无需额外配置即可运行。

方案2:适配ESM模式(修改自动生成的文件)

  • 可以手动修改index.js,将所有require语句替换为ESM的import语法,例如:
    // 原代码
    const aws = require('aws-sdk');
    // 修改后
    import aws from 'aws-sdk';
    
  • 注意:后续执行amplify update function或amplify push时,Amplify可能会重新生成index.js覆盖你的修改。建议将自定义逻辑封装在独立文件(如custom.js)中,仅在index.js中引入该文件,这样即使index.js被重写,只需保证引入路径正确即可。
  • 若要永久自定义函数模板,可使用Amplify的override功能:在函数目录下创建amplify/backend/function/<your-function-name>/override.ts文件,自定义生成逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:42:44