Lambdaをコンテナイメージから作成する – 【Docker】

Lambdaをコンテナイメージから作成する – 【Docker】

AWSが提供するLambda用のベースイメージを使用してLambdaをコンテナイメージから作成します。

AWS Lambdaベースイメージ

下記URLからPythonのAWS Lambdaベースイメージを利用します。

ECR Public Gallery
Amazon ECR Public Gallery is a website that allows anyone to browse and search for public container images, view develop...

ファイル

ファイルは2つです。依存関係がある場合はrequirements.txtが必要ですが、今回省略します。

  • lambda_function.py
  • Dockerfile

lambda_function.py

import json

def handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

Dockerfile

FROM public.ecr.aws/lambda/python:3.9

COPY lambda_function.py ${LAMBDA_TASK_ROOT}
CMD [ "lambda_function.handler" ]

${LAMBDA_TASK_ROOT}コマンドは、Lambda 関数が使用するタスクルートディレクトリ

Amazon ECRにイメージをプッシュ

Amazon ECRにリポジトリを作成しておく必要があります。

イメージをプッシュする手順は「Amazon ECRにDockerイメージをpushする方法」を参照ください。

Lambda作成

マネジメントコンソールからLambdaを作成します。

コンテナイメージURIは、ECRのイメージのURIをコピーして貼り付ければOKです。

「関数の作成」をクリックすればLambdaが作成されます。

テスト

Lambdaをテストします。

正常に実行できることが確認できます。

コンテナイメージから作成した際の注意点

コードプレビューが見れません。

ドキュメント

コンテナイメージを使用して Lambda 関数をデプロイする - AWS 規範ガイダンス

 

 

タイトルとURLをコピーしました