はじめに
フェイス・ソリューション・テクノロジーズ株式会社 IS 本部 OS ユニットの Saitoです。
前回の記事で、AWS Lambda 上にLINE bot 用の関数を設定しました。その際、ライブラリを関数のデプロイパッケージ内にアップロードしていました(画像赤枠)。
これでも問題なく動きますが、
同じライブラリを使った別の関数を作成するときに再度アップロードするのは面倒ですし、コードのストレージの無駄遣いになります。
また、サイズの大きなライブラリをアップロードしてデプロイパッケージの合計が3MBを超えた場合、コンソールエディタが使えなくなります。
(ちなみにLINE botの記事で利用したライブラリline-bot-sdk-pythonはzip圧縮したサイズが2.89MBでギリギリセーフでした。)
Lambda レイヤーを使えば、これらの不満を解決できます。
Lambdaレイヤーを実際にやってみる
ローカルでLambdaレイヤーを作成する
まず、レイヤー用にアップロードするzipを用意します。
Lambdaの実行環境は /opt ディレクトリ上にあり、レイヤーは /opt/python/ ディレクトリに置く必要があります。そのためzip化する際は、ライブラリを入れたpythonディレクトリを圧縮します。
→
Lambdaレイヤーをアップロードする
Lambda コンソールより「レイヤーの作成」に進みます。
さきほどzip化したライブラリをアップロードしてレイヤーを作成します。
Lambda関数にレイヤーを追加する
関数にレイヤーを追加します。
これで、デプロイパッケージをスッキリさせつつ、同様にlambda関数を実行できるようになりました。
実行結果
レイヤーに移動する前と同様に動いています。
コメント