Serverless框架配置Lambda为arm64架构不生效问题咨询
问题根因
该问题确实是Serverless框架版本过低导致的。architecture配置项是Serverless Framework v2.30.0 版本才正式新增的AWS Lambda arm64架构支持能力,你当前使用的v1.52.0版本属于已停止维护的旧版本,无法识别该配置字段,部署时会直接忽略该配置,因此Lambda架构不会更新。
解决方案操作步骤
- 第一步:升级Serverless框架版本
建议升级到v2.30.0以上的稳定版本,优先选择v3的LTS版本,本地项目依赖升级执行以下命令:
如果你是全局安装的Serverless框架,在命令中添加npm install serverless@latest --save-dev-g参数即可。 - 第二步:升级配套插件版本
你当前使用的几个配套插件版本均过低,和新版Serverless框架存在兼容性问题,按如下版本要求升级:
更新完成后删除项目的"serverless-plugin-optimize": "^4.2.1", "serverless-plugin-split-stacks": "^1.12.0", "serverless-plugin-typescript": "^2.1.5"node_modules目录和package-lock.json/yarn.lock文件,重新执行依赖安装命令。 - 第三步:确认配置有效性
你在provider层级配置的architecture: arm64是正确的,可以全局生效给所有Lambda函数,如果需要给个别函数单独指定架构,也可以在函数层级单独配置:functions: 你的函数名: handler: index.handler architecture: arm64 # 优先级高于provider层级配置 - 第四步:重新部署生效
执行强制部署命令触发全量配置更新,避免增量部署遗漏配置变更:
如果你遇到栈更新冲突,也可以先移除旧栈后重新部署,注意提前备份相关业务数据。serverless deploy --force
注意事项
- 如果你的Lambda绑定了自定义Layer,需要确保Layer也兼容arm64架构
- 如果你的代码包含C/C++/Go等编译型语言的原生依赖,需要在arm64环境下打包,或者开启跨架构编译,否则部署后会出现运行报错。
内容的提问来源于stack exchange,提问作者RamManiChimuriya
相关产品推荐
相关产品推荐

