serverless-python-requirementsで変名Pipfileを読むことはできない

タイトルの通り。
serverless-python-requirements で無理をしたかったができなかった話。

serverless-python-requirementsはpipだけでなくpipenvにも対応している。

custom:
  pythonRequirements:
    usePipenv: true

でpipenvのPipfileを読むことが可能になるが、

  • serverless.ymlと同じディレクトリにある
  • ファイル名が Pipfile である

を満たす場合のみ、pipenvを使うことができる。
つまり、「変名Pipfileを別のディレクトリに置いておく」などはできないのである。
しょんぼりなのじゃ。

どうしてもそういうことをやりたい場合は、requirements.txt を毎回ジェネレートする方法でごり押し可能。
serverless.ymlは以下のように設定する。

custom:
  pythonRequirements:
    fileName: ../requirements.txt

そして、slsの前にpipenvをlockして、requirements.txtをジェネレートする。

$ pipenv lock -r > requirements.txt