Go1.x运行时Lambda迁移至provided.al2初始化超时求助
问题:Go Lambda从go1.x迁移到provided.al2自定义运行时初始化超时
问题详情
- 原状态:基于go1.x运行时的Lambda函数,搭配SQS触发器运行完全正常
- 迁移操作:遵循AWS官方迁移指南升级至provided.al2自定义运行时,执行编译命令:
并更新Lambda函数的运行时配置为GOOS=linux GOARCH=amd64 go build -o bootstrapprovided.al2 - 异常现象:更新部署后,函数执行始终在初始化阶段超时,报错信息如下:
INIT_REPORT Init Duration: 10008.47 ms Phase: init Status: timeout;INIT_REPORT Init Duration: 60060.47 ms Phase: invoke Status: error Error Type: Runtime.Unknown
- 反向验证:将编译后的二进制文件改名为
main,切换回go1.x运行时,代码可恢复正常运行
解决方案
- 根因:旧版本的
aws-lambda-go库未适配provided.al2自定义运行时的协议规范,仅能兼容go1.x原生运行时 - 修复步骤:更新
aws-lambda-go库至最新版本,重新执行编译命令生成bootstrap文件后重新部署,即可解决初始化超时问题
内容的提问来源于stack exchange,提问作者user9163519
相关产品推荐
相关产品推荐

