BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Lambda】Lambdaでのコンテナを利用したJava実装について

コンニチハ、BFT名古屋支店のヤタテです。 今回は、Lambdaでコンテナイメージを使用する方法について簡単にまとめてみました。

Dockerファイル

Lambda用コンテナを作成するためのDockerファイルは以下のように記述します。今回はAWS公式が用意しているLambda用ベースイメージを使用しました。また、実行するコードを含むjarファイルのほかに、外部ライブラリとしてJDBCドライバを使用しました。

# AWSで提供されているLambda用のベースイメージを指定
FROM public.ecr.aws/lambda/java:11

# ローカルに配置したjarファイルをコンテナ内にコピー
COPY target/Sqldo3.jar ${LAMBDA_TASK_ROOT}

# 同様にJDBCドライバをコピー
COPY target/lib/postgresql-42.2.18.jar ${LAMBDA_TASK_ROOT}/lib/

# jarファイルを解凍
RUN ls -al
RUN jar -xvf Sqldo3.jar

# ハンドラーの設定
CMD [ "poc001.Sqldo::handleRequest" ]

ECRへのアップロード

Lambdaでコンテナを使用するためにはコンテナイメージをECRへアップロードする必要があります。ECRへのアップロード手順について詳細は以下の記事を参照してください。

bftnagoya.hateblo.jp

Lambda関数の作成手順

  1. AWSマネジメントコンソールで[AWS Lambda]-[関数]を開き、[関数の作成]を選択する。
  2. [コンテナイメージ]を選択し、[コンテナイメージ URI]でECRにアップロードしたコンテナイメージを選択する。その他の設定値については通常のLambda関数と同様に設定する。

■参考
コンテナを使わない通常のLambdaでのJava実装、およびDockerの使い方について詳細は以下の記事をご参考にどうぞ。
bftnagoya.hateblo.jp
bftnagoya.hateblo.jp