イメージリポジトリ - AWS Serverless Application Model

イメージリポジトリ

AWS SAM は、ビルドコンテナイメージを活用して、サーバーレスアプリケーションの継続的インテグレーションと継続的デプロイ (CI/CD) タスクをシンプルにします。AWS SAM が提供するイメージには、AWS SAM コマンドラインインターフェイス (CLI) と、サポートされている多数の AWS Lambda ランタイム用のビルドツールが含まれています。これは、AWS SAM CLI を使用したサーバーレスアプリケーションの構築とパッケージ化を容易にします。これらのイメージを CI/CD システムで使用して、AWS SAM アプリケーションの構築とデプロイを自動化できます。例については、「CI/CD システムを使用したデプロイ」を参照してください。

AWS SAM ビルドコンテナイメージ URI は、そのイメージに含まれる AWS SAM CLI のバージョンでタグ付けされています。タグがない URI を指定すると、最新バージョンが使用されます。例えば、public.ecr.aws/sam/build-nodejs14.x は最新のイメージを使用しますが、public.ecr.aws/sam/build-nodejs14.x:1.24.1 は AWS SAM CLI バージョン 1.24.1 が含まれるイメージを使用します。

AWS SAM CLI のバージョン 1.33.0 より、x86_64 および arm64 の両方のコンテナイメージが、サポートされているランタイムで使用できます。詳細については、AWS Lambda デベロッパーガイドの「Lambda ランタイム」を参照してください。

注記

バージョン 1.22.0 より前の AWS SAM CLI では、DockerHub がデフォルトリポジトリで、AWS SAM CLI はそこからコンテナイメージをプルしていました。バージョン 1.22.0 からは、デフォルトリポジトリが Amazon Elastic Container Registry Public (Amazon ECR Public) に変更されました。現在のデフォルト以外のリポジトリからコンテナイメージをプルするには、--build-image オプションが指定された sam build コマンドを使用できます。このトピックの最後にある例は、DockerHub リポジトリイメージを使用してアプリケーションを構築する方法を示しています。

イメージリポジトリ URI

以下の表には、AWS SAM を使用してサーバーレスアプリケーションを構築し、パッケージ化するために使用できる Amazon ECR Public のビルドコンテナイメージの URI がリストされています。

ランタイム Amazon ECR Public

(バージョン 1.22.0 以降のデフォルト)

DockerHub

(バージョン 1.22.0 より前のデフォルト)

.NET 7 public.ecr.aws/sam/build-dotnet7 サポート外
.NET 6 public.ecr.aws/sam/build-dotnet6 サポート外
.NET Core 3.1 public.ecr.aws/sam/build-dotnetcore3.1 サポート外
Node.js 18 public.ecr.aws/sam/build-nodejs18.x サポート外
Node.js 16 public.ecr.aws/sam/build-nodejs16.x サポート外
Node.js 14 public.ecr.aws/sam/build-nodejs14.x amazon/aws-sam-cli-build-image-nodejs14.x
Node.js 12 public.ecr.aws/sam/build-nodejs12.x amazon/aws-sam-cli-build-image-nodejs12.x
Node.js 10 public.ecr.aws/sam/build-nodejs10.x amazon/aws-sam-cli-build-image-nodejs10.x
Python 3.9 public.ecr.aws/sam/build-python3.9 サポート外
Python 3.8 public.ecr.aws/sam/build-python3.8 amazon/aws-sam-cli-build-image-python3.8
Python 3.7 public.ecr.aws/sam/build-python3.7 amazon/aws-sam-cli-build-image-python3.7
Python 3.6 public.ecr.aws/sam/build-python3.6 amazon/aws-sam-cli-build-image-python3.6
Python 2.7 public.ecr.aws/sam/build-python2.7 amazon/aws-sam-cli-build-image-python2.7
Ruby 2.7 public.ecr.aws/sam/build-ruby2.7 amazon/aws-sam-cli-build-image-ruby2.7
Ruby 2.5 public.ecr.aws/sam/build-ruby2.5 amazon/aws-sam-cli-build-image-ruby2.5
Java 11 public.ecr.aws/sam/build-java11 amazon/aws-sam-cli-build-image-java11
Java 8 (AL2) public.ecr.aws/sam/build-java8.al2 amazon/aws-sam-cli-build-image-java8.al2
Java 8 public.ecr.aws/sam/build-java8 amazon/aws-sam-cli-build-image-java8
Go 1.x public.ecr.aws/sam/build-go1.x amazon/aws-sam-cli-build-image-go1.x
カスタムランタイム (AL2) public.ecr.aws/sam/build-provided.al2 amazon/aws-sam-cli-build-image-provided.al2
カスタムランタイム public.ecr.aws/sam/build-provided amazon/aws-sam-cli-build-image-provided

以下の 2 つのコマンド例は、DockerHub リポジトリからのコンテナイメージを使用してアプリケーションを構築します。

# Build a Node.js 12 application using a container image pulled from DockerHub sam build --use-container --build-image amazon/aws-sam-cli-build-image-nodejs12.x # Build a function resource using the Python 3.8 container image pulled from DockerHub sam build --use-container --build-image Function1=amazon/aws-sam-cli-build-image-python3.8