概要
Lambdaの関数コードをコンテナイメージでデプロイすることができますが、
今回はServerlessFrameworkを使って簡単にクラウド環境にデプロイする手順を書き記します。
手順
1.サンプルコードを作成
$ serverless create --template aws-python-docker --path aws-python-docker-demo
✔ Project successfully created in "aws-python-docker-demo" from "aws-python-docker" template (3s)
2.デプロイコマンド実行
$ serverless deploy
Deploying aws-python-docker-demo to stage dev (ap-northeast-1)
✔ Service deployed to stack aws-python-docker-demo-dev (187s)
functions:
hello: aws-python-docker-demo-dev-hello
3.確認
LambdaとECRそれぞれにデプロイされていることが確認できました。
ハマりポイント
-
Runtime.InvalidEntrypoint
エラーが発生した- M1 Macで環境構築したため、コンテナイメージが
arm64
アーキテクチャでビルドされたのが原因でした。serverless.yml
にアーキテクチャを指定することで解決しました。
- M1 Macで環境構築したため、コンテナイメージが
serverlss.yml
provider:
name: aws
ecr:
images:
appimage:
path: ./
stage: dev
region: ap-northeast-1
architecture: arm64 <- ここ
関連記事