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 規範ガイダンス
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^