這篇是一個抱怨文,最近在維護一個 AWS SAM 專案遇到的蠻蠢的設計問題,原本的專案是用 requirements.txt 管理套件,但是後來改用 poetry 後就把 requirements.txt 拔掉了,誰知道 sam build 就不能跑了 …
然後錯誤訊息說「requirements.txt not found」心想 sam build 到底跟 requirements.txt 什麼關係 …
去 sam build 文件找才看到執行時會去查看 requirements.txt 找尋可用的相依性套件,但是像我改用 poetry 或 pipenv 就不會需要 requirements.txt,為了 SAM 還要放一個空個 requirements.txt 在專案內 … 到底是花黑噴 !!!???
相同的問題早有人在 aws-sam-cli 提到過「Conforming with PEP 518 to use pyproject.toml instead of requirements.txt/setuptools #1366」希望可以支援 pyproject.toml 作為參考依據,不過也提了半年左右還在 Issue Open 的狀態 … 看樣子直接把 SAM 改為 CDK 可能更靠譜一些。