https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-create.html
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 1.2 docker インストール
sudo amazon-linux-extras install docker -y
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
sudo usermod -a -G docker ec2-user
ターミナルを再起動
id
-- 2. AWS ベースイメージから Lambda 用のイメージを作成する
mkdir test
cd test
vim app.py
#!/usr/bin/python
def lambda_handler(event, context):
print(event)
return 'OK'
-- 2.1 Dockerfile を作成
vim Dockerfile
FROM public.ecr.aws/lambda/python:3.8
COPY app.py ${LAMBDA_TASK_ROOT}
CMD [ "app.lambda_handler" ]
-- 2.2 Docker イメージをビルド
docker image build -t testimage:v1 .
docker image ls -a
-- 2.3 Docker イメージを起動
docker run -p 9000:8080 testimage:v1
-- 別セッションから確認
docker container ls -a
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'
docker container rm -f 111111111111
-- 2.4 Dockerへの認証
aws ecr get-login-password --region ap-northeast-1 | \
docker login --username AWS --password-stdin 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com
-- 2.5 Amazon ECR にリポジトリを作成
aws ecr create-repository \
--repository-name ecr01 \
--image-scanning-configuration scanOnPush=false \
--image-tag-mutability IMMUTABLE
aws ecr describe-repositories
-- 2.6 リポジトリ名と一致するタグをイメージに付け、イメージを Amazon ECR にpush
docker image tag testimage:v1 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/ecr01:v1
docker image ls -a
docker image push 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/ecr01:v1
aws ecr list-images --repository-name ecr01
-- 3. クリーンアップ
-- Docker イメージ削除
docker image ls -a
docker image rm -f 222222222222
-- ECRリポジトリの削除
aws ecr describe-repositories
aws ecr delete-repository \
--repository-name ecr01 \
--force