深く後悔したことをメモしていく。
AWSのサービスと関係するコードは、最初の1行からAWS上でユニットテストすべし
ユニットテストは手元で走らせたいのが人情だが、やってはならない。うっかりmoto
を信じた私が馬鹿だった。moto
は何をしてもまったくエラーを返さない。
Lambdaでは共有メモリが使えない
そのためmultiprocessing
のPool
とQueue
が使えない。そのためloky
も使えない。
Parallel Processing on AWS Lambda with Python using Multiprocessing
CodeBuildでCodeCommitのリポジトリをソースにすると、普通にgit clone
する。しかしCodePipelineでCodeBuildをキックすると、CodeCommitのリポジトリをZIPファイルとして取得するので、.git
ディレクトリ等が存在せず、Gitメタデータが使えない
知らなければ絶対に思いつかない驚天動地のクソ仕様。AWSに限らず、誰か「知らなければ必ずハマる驚天動地のクソ仕様」というまとめを作ってください。
随時追記する予定。