无法将容器映像部署到 lambda 函数

Bra*_*nta 9 python amazon-web-services docker dockerfile aws-lambda

我尝试将容器映像部署到 lambda 函数,但出现此错误消息

不支持源图像 <image_source> 的图像清单或图层媒体类型。

这是我的 Dockerfile,我相信我已经使用了正确的设置

FROM public.ecr.aws/lambda/python:3.8

# Install dependencies
COPY requirements.txt ./
RUN pip install -r requirements.txt

# Copy function code
COPY app/* ./

# Set the CMD to your handler
CMD [ "lambda_function.lambda_handler" ]
Run Code Online (Sandbox Code Playgroud)

Sha*_*der 18

如果您使用 buildx >= 0.10 指定目标平台不起作用,因为它默认还会创建多平台索引。

要解决此问题,请设置--provenance=false为 docker build。

更多详情请参阅:https://github.com/docker/buildx/issues/1509#issuecomment-1378538197

  • 谢谢!这解决了我们的问题。我们使用 buildkit 为 AWS ECR 上托管的 AWS Lambda 构建 docker 镜像。我们的部署最近开始失败,并出现错误:“资源处理程序返回消息:“源图像的图像清单或图层媒体类型 \***.dkr.ecr.\***.amazonaws.com/\***:\不支持***。(服务:Lambda,状态代码:400...)” (2认同)

小智 7

尝试将您构建的映像的目标平台指定为amd64

docker build --platform linux/amd64 . -t my_image

在尝试基于支持linux/amd64linux/arm64/v8(Apple Silicon) 架构的映像部署 lambda 时,我遇到了同样的错误。

  • 是的,ECR 支持多架构图像,但 lambda 似乎无法处理它们。 (2认同)