Does Lambda not support multi-architecture container images / manifests?

1

I have utilised docker buildx and CodeBuild to build my docker image with multiple architectures. However if I try to use the parent manifest image, which should select the correct architecture based on the host OS, I cannot create my Lambda. I get the error stating

The image manifest or layer media type for the source image <imageECRdetailsHere> is not supported.

However, if I specifically chose the image created for said architecture it will work. I feel that this is a failing of Lambda Container images as one of the key points of having a manifest with multiple architectures is that I do not need to be specific about the image / platform when pulling the image.

Am I missing something here, or is this currently completely unsupported by AWS Lambda?

The image manifest matches the docker v2 specification, and works when pulling the image locally, and both work by forcing the --platform option. Is this a bug, a missing feature or just blatantly not supported? The Lambda documentation states images that meet the manifest specifications are supported, but it appears that does not extend to manifest lists which are supported by the Docker image manifest V2, schema 2, which is supposed to be supported.

已提问 2 年前2812 查看次数
1 回答
2

As of this writing, AWS Lambda does not yet support multi-arch container images. It only supports single-image manifests, and the image architecture must match the compute architecture:

You create each container image to be compatible with one of the instruction set architectures that Lambda supports. Lambda provides base images for each of the instruction set architectures and Lambda also provides base images that support both architectures.

The image that you build for your function must target only one of the architectures.

See the documentation for details.

AWS
专家
已回答 2 年前
  • Hi Michael,

    Don't you know if there are any plans to add support for multi-architecture container images/manifest to Lambda?

    I've been searching in https://github.com/aws/containers-roadmap, but Lambda features are unfortunately not included there.

    We have quite a nice use case for multi-arch image deployment: Our Lambda image is pulled-through-cache from public ECR repository. But as actual (latest) image in this public repository is only multi-architecture, we have to use single-architecture images, which are tied to specific commits and consequently, we are losing automatic updates of the image via pulling with pull-through-cache AWS feature.

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则