share facebook facebook twitter menu hatena pocket slack

2019.05.13 MON

Serverless python requirementsのcachingを有効にしてビルド時間短縮

高橋 修一

WRITTEN BY 高橋 修一

Serverless Framework で、requirements.txtに記載したパッケージをインストールしてLambdaに同梱してくれる便利プラグイン serverless-python-requirements ですが、ビルドのたびにインストールが走って、しんどいなぁと思ってたのですがキャッシュを利用する設定がありました。

キャッシュ利用設定

READMEExtra Config Options > Caching から引用

customセクションのpythonRequirementsで有効にするキャッシュタイプをtureにすることでキャッシュを有効にできます。
デフォルトはfalse(=キャッシュ使わない)設定になってます。

custom:
  pythonRequirements:
    useDownloadCache: true
    useStaticCache: true

詳細はREADME参照
cacheLocationでキャッシュする場所も指定できるようです。

キャッシュ利用結果

2回目以降はキャッシュが使われて、比較するとかなり早くビルドが終わりました。

Serverless: Using static cache of requirements found at /root/.cache/serverless-python-requirements/...

指定バージョンを変更した場合

requirements.txt内の
dnspython==1.15.0

dnspython==1.16.0
に変更して、もう一度ビルド&デプロイしてみたところ

Serverless: Installing requirements from /root/.cache/serverless-python-requirements/...

という感じでインストールが走り直しました。デプロイされたパッケージのdnspythonバージョンも1.16.0になっていました。

備考

キャッシュ設定は去年(2018)の9月ぐらいから使えるようになったぽい
https://github.com/UnitedIncome/serverless-python-requirements/pull/165
https://github.com/UnitedIncome/serverless-python-requirements/commit/137f8e1b1e10579a2b8db88a49c335329a3307dd#diff-04c6e90faac2675aa89e2176d2eec7d8

元記事はこちら

Serverless python requirementsのcachingを有効にしてビルド時間短縮

高橋 修一

高橋 修一

社内サービスの開発を主にやっています。大阪オフィス所属。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。