5
3

More than 3 years have passed since last update.

[Python / AWS Lambda layers] AWS Lambda Layersでmoduleだけを使い回したい

Posted at

概要

ピンポイントでやりたいことだけがまとまっている記事がなかったので、メモとして作成

AWS Lambda Layersでライブラリを共通化 という記事のやり方とほぼ一緒なのですが、 自作ソースを一切含めずに pip install される module だけを lambda 上で使い回したい場合 の方法を探しても見つけられなかったので、記事化。
(私が何回も使いたいので!)

手順

1. modules を zip にまとめる

$ mkdir python

# 他にも欲しい module があれば、全部 python ディレクトリに入れておく
$ pip install module_name -t ./python

# pythonディレクトリの中身を layer.zip へと圧縮
$ zip -r layer.zip python/

2. S3にアップロード

S3のバケットは先に作っておく

(1) GUIで行う場合

GUIのAWSコンソールでアップロードするのは簡単なので、省略

(2) コマンドラインで行う場合

ファイルサイズが大きい時や、通信回線が貧弱な時(!)は、コマンドライン経由でアップロードしないと失敗する

aws-cli v2 をインストールしておき、その上で以下のコマンドを実行

# backet名を確認
$ aws s3 ls
2019-05-07 19:04:54 xxxxxxxxxxxxx # <= バケット名

# s3へのupload実行
# aws s3 cp アップロードしたいファイル名 バケット名
$ aws s3 cp ./layer.zip s3://xxxxxxxxxxxxx

待つ( ˘ω˘)スヤァ

3. layersを作成

4. lambda関数からlayerを呼び出す

3, 4 については、先ほど概要で紹介した記事の、 Lambda関数にLayerを追加する 以降の通りにすれば大丈夫でした。

(雑ですみません。記事を作成して下さった @t_okkan さん本当にありがとうございます!)

5
3
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
5
3