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

按照AWS教程创建AppSync操作Lambda Layer时遇Babel编译问题

问题排查:AppSync操作导出Lambda Layer时Babel未编译文件

可能的原因及解决步骤

1. 先确认amplify codegen是否生成了源文件

单独执行amplify codegen,去src/graphql目录下查看是否存在mutations.js、queries.js、subscriptions.js这几个文件。如果没有:

  • 运行amplify status确认Amplify项目已正确关联AppSync API,且API状态正常
  • 检查amplify/backend/api/<api-name>/schema.graphql中是否定义了查询、变更、订阅操作——没有这些定义的话,codegen不会生成对应文件

2. 修复Babel命令的路径匹配问题

即使源文件存在,Babel也可能因匹配规则问题找不到文件:

  • 直接指定文件扩展名修改命令:
    babel src/graphql/*.js --config-file ./babel.config.json -d ./amplify/backend/function/my_function_name/opt/graphql/
    
    或者用--extensions参数明确要处理的文件类型:
    babel src/graphql --config-file ./babel.config.json --extensions ".js" -d ./amplify/backend/function/my_function_name/opt/graphql/
    
  • 注意:如果项目使用TypeScript,amplify codegen可能生成.ts文件,此时需调整Babel命令处理.ts,或在codegen配置中指定生成JS文件

3. 检查Babel配置是否有效

打开babel.config.json确认配置正确,需包含适配Lambda运行环境的预设,示例基础配置:

{
  "presets": [
    ["@babel/preset-env", {
      "targets": {
        "node": "18" // 对应你Lambda使用的Node.js版本
      }
    }]
  ]
}

配置错误会导致Babel跳过文件处理。

4. 确认目标路径的正确性

  • 先手动创建目标目录:mkdir -p ./amplify/backend/function/my_function_name/opt/graphql/——部分Babel版本不会自动创建不存在的目录
  • 核对my_function_name与实际Lambda Layer函数名完全一致,大小写、拼写均不能出错

关于教程完成情况

我之前成功完成过这个教程,核心是确保amplify codegen能正确生成源文件,同时Babel能匹配并编译这些文件到目标目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:22:07