3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Lambda(Node.js)のDockerイメージをデプロイしてみた。(その2,Node.jsのイメージ作成)

Posted at

はじめに

LambdaをDockerイメージでデプロイする方法を、調査する機会があったので自分の備忘用にメモ書きを残します。

今回は、デプロイ用のNodeイメージを用意する所をメモ書きします。

Dockerファイルの記載方法がハマりどころでした。

EC2に、Node.jsの環境を用意する

  • コンパイル環境の用意
  • gitの用意
  • nvmのインストール
  • nvmを使ってNode.jsをインストール
sudo yum update
sudo yum -y install gcc-c++
sudo yum -y install git
git clone https://github.com/creationix/nvm.git ~/.nvm

「.bash_profile」を書き換えて、ログイン時にNVMの情報を読み込むようにする。

# nvm
if [[ -s ~/.nvm/nvm.sh ]] ; then
        source ~/.nvm/nvm.sh ;
fi

を末尾に追記する。

端末(Teraterm)を切断 → 再接続し、プロファイルを有効にする。

nvm ls-remote

でインストール可能なバージョンを確認する。

image.png

nvm install v20.18.0
node --version

image.png

Docker上に転送するモジュールとコード一式を用意

  • デプロイプロジェクト用のディレクトリを用意する
cd
mkdir DeployProject
cd ./DeployProject
  • npm init で package.json を作成する

image.png

  • 必要なライブラリ群をインストールする
npm install aws-sdk
npm install http
npm install aa            
npm install executors
npm install request

image.png

ここまでで、

  • node_modules
  • package-lock.json
  • package.json
    が作成される。
FROM public.ecr.aws/lambda/nodejs:20

RUN mkdir -p /opt

COPY index.js ${LAMBDA_TASK_ROOT}
COPY node_modules/ ${LAMBDA_TASK_ROOT}/node_modules/
COPY package-lock.json ${LAMBDA_TASK_ROOT}
COPY package.json ${LAMBDA_TASK_ROOT}

CMD [ "index.handler" ]

を、$HOME/DeployProject/Dockerfileに用意する。

公式のLambda実行環境イメージに、自分のソース&ライブラリ群を転送するイメージです。

node_modules ディレクトリの転送記述は、上記の記載で大丈夫でした。

まとめ

今回のビルド用の環境用意までを記載しました。

node_modulesの転送用の書き方や、package.json、package-lock.jsonを用意しておかないとLambdaとして動かしたときに上手く動かなかったというのが、今回のメモ書きの大事なところです。

AWSの相談・お困りごとありましたら、、、

AWSの活用方法や、お困りごとの相談、随時、お仕事の受付しております。
AWSのLambda開発関連で、ライトな開発や、ちょっと、こんな事を自動化したい!等も、お気軽に問い合わせください。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?