moto の 1.3.15 でエラー
こんにちは。
概要
python から AWS のリソースを操作したいとき、 SDK である boto3 を利用してる方も多いと思います。 その boto3 を mock してくれる大変ありがたいライブラリである、 moto ですが、 09/08 にリリースされた ver.1.3.15 で、必要な依存ライブラリがインストールされなくなりテストに失敗するケースが出ているようです。 github.com
起こったこと
かくいう私も、 S3 と Cognito のモックでエラーが出てしまいました。 GitHub のブランチに Push すると CodePipeline が動きはじめ、CodeBuild で pytest を実行後、 serverless framework でデプロイをしています。
その pytest の部分がエラーになってしまい、デプロイ失敗となっていました。
なぜ気づいたか
なぜ moto が原因かと気づいたかというと、 * 同じソースコードを09/07 にデプロイしたときは問題なく通っていた * ソースコードやビルド環境は変更していない * 使用しているライブラリは Pipfile で管理しており、バージョン固定していない(ビルド時の最新を使用する)
利用しているライブラリの最終更新はないかな?と調べたら、ちょうど moto がバージョンアップしていました。 そこで、 Pipfile にてバージョンを 1.3.14 に固定してデプロイしたらテスト成功。 これだ。となった次第です。
対応
ひとまずはバージョン固定でデプロイすることにしました。 moto は現在修正作業が行われているので、次のバージョンを待ちましょう。
教訓
デプロイ時のバージョンには気を付けましょう。 バージョン固定をするべきかどうか。このあたりもきちんと考えて方針を決めたいですね。
最後に
moto は AWS 関連の開発を行う上で非常に便利なライブラリです。 これからもお世話になります!