ラボの概要
Lambda 関数は、最大 10 GB のサイズのコンテナイメージとしてパッケージ化し、デプロイできます。これにより、機械学習やデータを大量に処理するワークロードなど、かなり多くの依存関係を持つ大きめのワークロードのビルドとデプロイが可能になります。ZIP アーカイブとしてパッケージ化された関数と同様に、コンテナイメージとしてデプロイされた関数には、シンプルな運用、オートスケーリング、高可用性、多くのサービスとのネイティブ統合といった利点があります。
このラボでは、コンテナイメージを利用してサンプルアプリケーションを AWS Lambda にデプロイします。AWS Cloud9 をクラウドベースの統合開発環境 (IDE) として利用します。AWS Cloud9 でサンプルアプリケーションを作成してローカルでテストし、コンテナイメージを Amazon Elastic Container Registry (Amazon ECR) にアップロードし、最後に AWS サーバーレスアプリケーションモデル (SAM) を使用してコンテナイメージを AWS Lambda にデプロイします。
このラボは JavaScript を使用して進めていきます。Lambda の AWS ベースイメージから始めて、新しい Lambda 関数のコンテナイメージをビルドします。代替ベースイメージを使用してイメージを作成することもできます。
コンテナイメージを作成するには、次のコンテナイメージマニフェスト形式のいずれかをサポートする任意の開発ツールを使用できます。
- Docker Image Manifest V2、Schema 2 (Docker バージョン 1.10 以降とともに使用)
- OCI 仕様 (v1.0.0 以降)
例えば Docker CLI を使用して、コンテナイメージをビルド、テスト、デプロイできます。こうした用途のために、このラボでは AWS SAM CLI を使用します。
このラボの所要時間は約 90 分です。
取り上げるトピック
このラボを修了すると、以下ができるようになります。
- Lambda Runtime Interface Emulator を使用して、Cloud9 開発環境でローカルに Lambda 関数を作成してテストする
- Lambda コンテナイメージを Amazon Elastic Container Registry (Amazon ECR) にアップロードする
- Lambda 関数で使用されているコンテナを変更して再アップロードする
- Amazon API Gateway エンドポイントを介して Lambda 関数を呼び出す
技術知識の前提条件
このラボを完了するには、AWS マネジメントコンソールの基本的なナビゲーションに関する知識が必要です。また、テキストエディタを使用したスクリプトの編集に慣れている必要があります。