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

Localstack环境下SQS无法触发Lambda问题排查求助

问题原因

你遇到的invalid reference formatDocker报错核心是创建Lambda函数时未指定自定义镜像的包类型,LocalStack默认按Zip包类型尝试拉取通用Lambda运行时镜像,出现了镜像引用格式错误。

具体问题点:

  • 创建Lambda命令缺少包类型参数:你使用自定义容器镜像部署Lambda,需要在aws lambda create-function命令中添加--package-type Image参数,否则AWS CLI(包括LocalStack适配的CLI)会默认认为你是上传Zip格式的代码包,会去匹配对应runtime的公共镜像,而非使用你指定的ImageUri。
  • 日志中Running container with image: lambci/lambda:的空标签记录也验证了这个问题,LocalStack因为没有获取到正确的镜像配置,生成了非法的镜像引用地址。
额外预检查

执行修复前确认以下配置正确:

  • 你已经提前在本地构建了python-lambda-test:latest镜像,LocalStack需要访问本地的这个镜像才能创建Lambda容器
  • 你当前docker-compose里的LAMBDA_REMOTE_DOCKER=false配置是正确的,该配置保证LocalStack会使用本地Docker镜像而非远程拉取
修复步骤
  1. 先删除你之前创建的错误Lambda函数:
aws --endpoint http://localhost:4566 lambda delete-function --function-name python-lambda-test
  1. 重新执行带正确参数的Lambda创建命令:
aws --endpoint http://localhost:4566 lambda create-function --timeout 120 --function-name python-lambda-test --package-type Image --code ImageUri=python-lambda-test:latest --role arn:aws:iam::000000000:role/lambda-ex

注意:使用自定义容器镜像部署Lambda时,--handler参数无需指定,因为镜像的CMD已经配置了入口,指定反而可能出现冲突。

  1. 其余SQS队列创建、事件源映射、发送测试消息的命令无需修改,重新执行测试即可。

内容的提问来源于stack exchange,提问作者Renato Ramos Nascimento

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:27:02