本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
映像存储库
Amazon SAM 借助构建容器映像,简化无服务器应用程序的持续集成和持续交付 (CI/CD) 任务。 Amazon SAM 提供的镜像包括许多支持的 Amazon Lambda 运行时的 Amazon SAM 命令行界面 (CLI) 和构建工具。这使得使用 Amazon SAM CLI 构建和打包无服务器应用程序变得更轻松。您可以将这些映像与 CI/CD 系统配合使用,自动构建和部署应用程序。 Amazon SAM 有关示例,请参阅使用 CI/CD 系统进行部署。
Amazon SAM 构建容器镜像 URI 标有该镜像中 Amazon SAMCLI包含的版本。如果您指定未标记的 URI,则使用最新版本。例如,public.ecr.aws/sam/build-nodejs14.x
使用最新的映像。但是,public.ecr.aws/sam/build-nodejs14.x:1.24.1
使用包含 Amazon SAM
CLI 版本 1.24.1 的映像。
从版本的 1.33.0 开始 Amazon SAMCLI,这两个镜像x86_64
和arm64
容器镜像都可用于支持的运行时。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的 Lambda 运行时系统。
注意
在 1.22.0 版本之前 Amazon SAMCLI, DockerHub 是从中 Amazon SAMCLI提取容器映像的默认存储库。从版本 1.22.0 开始,默认存储库改为 Amazon Elastic Container Public (Amazon ECR Public)。要从当前默认存储库以外的存储库中提取容器映像,可以使用带 --build-image 选项的 sam build 命令。本主题末尾的示例展示了如何使用 DockerHub 存储库映像构建应用程序。
映像存储库 URI
下表列出了可用于构建和打包无服务器应用程序的 Amazon ECR 公共构建容器映像的 URI。 Amazon SAM
注意
从 Amazon SAM CLI 版本 1.22.0 开始,Amazon ECR Public 取代了 DockerHub。如果您使用的是的早期版本 Amazon SAMCLI,我们建议您升级。
运行时系统 | Amazon ECR Public |
---|---|
自定义运行时 (AL2023) | public.ecr.aws/sam/build-provided.al2023 |
自定义运行时 (AL2) | public.ecr.aws/sam/build-provided.al2 |
自定义运行时 | public.ecr.aws/sam/build-provided |
Go 1.x | public.ecr.aws/sam/build-go1.x |
Java 21 | public.ecr.aws/sam/build-java21 |
Java 17 | public.ecr.aws/sam/build-java17 |
Java 11 | public.ecr.aws/sam/build-java11 |
Java 8 (AL2) | public.ecr.aws/sam/build-java8.al2 |
Java 8 | public.ecr.aws/sam/build-java8 |
.NET 8 | public.ecr.aws/sam/build-dotnet8 |
.NET 7 | public.ecr.aws/sam/build-dotnet7 |
.NET 6 | public.ecr.aws/sam/build-dotnet6 |
Node.js 20 | public.ecr.aws/sam/build-nodejs20.x |
Node.js 18 | public.ecr.aws/sam/build-nodejs18.x |
Node.js 16 | public.ecr.aws/sam/build-nodejs16.x |
Python 3.12 | public.ecr.aws/sam/build-python3.12 |
Python 3.11 | public.ecr.aws/sam/build-python3.11 |
Python 3.10 | public.ecr.aws/sam/build-python3.10 |
Python 3.9 | public.ecr.aws/sam/build-python3.9 |
Python 3.8 | public.ecr.aws/sam/build-python3.8 |
Ruby 3.3 | public.ecr.aws/sam/build-ruby3.3 |
Ruby 3.2 | public.ecr.aws/sam/build-ruby3.2 |
示例
以下两个示例命令使用 DockerHub 存储库中的容器镜像构建应用程序:
使用从 DockerHub 提取的容器映像构建 Node.js 12 应用程序:
$
sam build --use-container --build-image
amazon/aws-sam-cli-build-image-nodejs12.x
使用从 DockerHub 提取的 Python 3.8 容器映像构建函数资源:
$
sam build --use-container --build-image
Function1=amazon/aws-sam-cli-build-image-python3.8