使用AWS Amplify CLI添加Lambda函数时遇版本相关错误求助
AWS Amplify CLI添加Lambda函数时跨版本报错的解决思路
我在使用AWS Amplify CLI添加Lambda函数时遇到跨版本报错问题,项目依赖的aws-amplify版本为4.3.46,具体错误如下:
- CLI 12.12.0版本:执行
npm i @aws-amplify/cli@latest -g安装后,运行amplify add function,选择Lambda函数后流程突然终止,报错:🛑 There was an error adding the function resource - CLI 9.2.1版本:安装该版本后执行相同命令,出现类型错误:
TypeError: Cannot read property 'toLowerCase' of undefined at autogeneratedParameters (/snapshot/repo/build/node_modules/amplify-category-function/lib/provider-utils/awscloudformation/service-walkthroughs/autogeneratedParameters.js:7:35)
解决思路
清理Amplify CLI缓存
跨版本切换CLI容易残留缓存文件引发冲突,执行以下命令清理:amplify cache clear rm -rf ~/.amplify清理完成后重新尝试
amplify add function。检查项目Amplify配置完整性
确认项目根目录的amplify/.config/project-config.json和amplify/team-provider-info.json文件无损坏或缺失关键字段(如projectName、envName、awscloudformation配置)。若文件异常,可从备份恢复,或备份现有资源后重新初始化项目。匹配CLI与aws-amplify版本兼容性
aws-amplify v4.x对应的CLI版本建议选择8.x~10.x区间,避免最新版或过旧版本。比如尝试安装CLI 10.8.0版本:npm uninstall -g @aws-amplify/cli npm i @aws-amplify/cli@10.8.0 -g安装完成后重新执行
amplify configure登录AWS账号,再尝试添加函数。手动创建Lambda函数配置文件
如果交互式命令持续失败,可手动在amplify/backend/function目录下创建函数文件夹,参考现有函数目录结构(若有)编写function.json和template.yml配置文件,之后运行amplify push触发部署。检查Node.js版本兼容性
不同Amplify CLI版本对Node.js版本有明确要求:- CLI 9.x建议使用Node.js 14.x/16.x
- CLI 12.x建议使用Node.js 16.x/18.x
可通过nvm切换符合要求的Node.js版本:
nvm use 16
内容的提问来源于stack exchange,提问作者user42195
相关产品推荐
相关产品推荐

