紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【AWS Lambda】No module named 'xxxx'エラーが発生したときの対処法

f:id:yokoyantech:20181203171840p:plain

やりたいこと

  • 業務で書いたLambdaのコード量が900行を超えてカオスになったので、リファクタリングしたい。
  • コードの用途ごとにソースを分割したい。

発生したエラー

Unable to import module 'lambda_function': No module named 'util'

原因

  • zipで圧縮した際に、サブディレクトリができているため

対策

  • 案1
    • サブディレクトリでの管理をやめる
    • すべてのプログラムをlambda_functionと同階層に配置する
  • 案2
    • サブディレクトリでの管理を継続する
    • zip化する際に、ディレクトリの中身をzipに足す

今回のプロダクトではlambdaのデプロイをansibleで実施している。影響が大きいため、ひとまず案1を採用。

参考情報

cloudmemo.hatenablog.com