Site icon imageTomoMemo.dev

Memo on programming. Provided by Tomo with passion.

[AWS CDK]PythonのDocker Imageを使ってLambdaを動かす環境構築手順

Icon in a callout block
Python 100Days Challenge Day29

AWS CDKを使ってLambdaを動かしてみる。

Docker Imageを使うのは環境構築が楽だからです。押忍。

cdkコマンドはこれをみてまずは使えるようにしておく。

https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/cli.html

AWS CDK TypeScript Projectの準備

下記コマンド一発でCDKの環境ができる

cdk init app --language typescript

実際にLambdaを動かすコードはPythonで書くが、ベースコードはTypeScriptで書かれているのでこのようなコマンドをたたく。

imageディレクトリとsrcディレクトリを作成する

mkdir image && cd image/
mkdir src

src直下にmain.pyファイルを作成する

touch main.py

imageディレクトリにもどってrequirements.txtを定義する

requirements.txtは、Pythonプロジェクトで使用される外部ライブラリやパッケージのリストを記述するテキストファイルのこと。これでプロジェクトの依存関係を管理できる。

touch requirements.txt
vi requirements.txt

numpyを使うのでnumpyとtxtファイルに追加する

Dockerfileの設定

Dockerfileをimageディレクトリ内で定義する。

  • 定義内容
    • ベースイメージの設定
    • requirements.txtをLambda関数が実行されるディレクトリにコピーする
    • Pythonパッケージをインストールする
    • Lambda関数が実行されるディレクトリにコピーする
FROM public.ecr.aws/lambda/python:3.11

COPY requirements.txt ${LAMBDA_TASK_ROOT}

# パッケージのインストール
RUN pip install -r requirements.txt

# ファイルのコピー
COPY src/* ${LAMBDA_TASK_ROOT}

# mainのハンドラー関数を実行(AWS Lambdaがイベント処理するために最初に呼び出す関数)
CMD [ "main.handler" ]

Docker imageが問題なく動くかどうかテストする。

Macbookの場合はDockerアプリを必ず立ち上げてからこのコマンドをたたくこと。

docker build -t docker-image:test .

準備はできたので、次回はPythonのコードを書いてAWSにデプロイ、Lambdaを動かしてみる。

ソースコードはこちら

https://github.com/tomohiro-dev/aws-cdk-lambda

Powered by Tomo with passion.