LoginSignup
1
0

AWS Lambda × Ruby 「ランタイムに合わせたbundle install面倒くさい...」「デプロイパッケージが大きすぎて...」という困り事

Last updated at Posted at 2023-10-06

AWS Lambdaでライブラリを利用するのって地味に面倒くさい

AWS lambdaでライブラリを利用するときに面倒だと思った以下2点についての対処法

  • zipフォルダを用意するまで
  • 「デプロイパッケージが大きすぎて、インラインコード編集を有効にできません。...」の回避

zipフォルダを用意するまで

Dockerfileを準備

Dockerfile
# AWS Lambdaで利用するランタイムのバージョンを指定する
FROM ruby:2.7

WORKDIR mkdir /var/www

# /var/wwwの部分は/appなどなんでも良い
COPY /app/* /var/www

RUN bundle config --local set path 'vendor/bundle'

RUN bundle install

docker container を起動

$ docker image build -t XXX:YYY
XXXのところはsample_app
YYYのところはlatest
などでよい

$ docker container run -it -p 8000:8000 --name sample_app sample_app:latest

root@b1b2ee43a8bd:/# 

bundle install

$ cd var/www

$ bundle config --local set path 'vendor/bundle'

$ bundle install

Docker Desktop for Macでライブラリのフォルダをダウンロードする

該当のcontainerを選択
スクリーンショット 2023-10-06 12.01.40.png

スクリーンショット_2023-10-06_9_56_05.png

zipにしてアップロード

ドキュメントに記載されている通りのフォルダを作成する
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/packaging-layers.html

スクリーンショット 2023-10-06 12.19.29.png

「デプロイパッケージが大きすぎて、インラインコード編集を有効にできません。...」の回避

その他のリソース>レイヤー>レイヤーの作成

スクリーンショット_2023-10-06_12_20_17.png

ライブラリのフォルダをzipにしてアップロード

スクリーンショット 2023-10-06 12.21.21.png

レイヤー>レイヤーの追加

スクリーンショット_2023-10-06_12_21_55.png

スクリーンショット_2023-10-06_12_22_49.png

レイヤーが追加されていることを確認
スクリーンショット_2023-10-06_12_23_50.png

1
0
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
1
0