イメージリポジトリ - 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 より前のデフォルト)

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