はじめに
FastAPIをラップしたメソッドを AzureFunctionで使用している場合、
Function の初回起動時に発生するエラーが、Azure Functions の内部ログとしては記録されず、原因特定が難しいという現象があります。
公式ドキュメントを確認した限りでは、明確な対応策は提示されていませんでした。。
そこで、Azure Functions側での対応ではなく、別の方法でこの問題を回避するアプローチを思いついたため、本記事で共有させていただきます。
もし誤った情報が含まれている箇所がございましたら、ご指摘いただければ幸いです!
回避策
FastAPIを単体で立ち上げる専用のコンテナを作成し、FastAPI アプリの起動時に発生するエラーやスタックトレースを直接コンソールに出力する。
実装時の注意点
uvicorn のインストールについて
Azure Functions では、FastAPI アプリをラップするために uvicorn は必須ではありません。
そのため、FastAPI単体で動作させるには、uvicornのインストールが必要になります。
モジュール指定の工夫
uvicorn を用いてアプリを起動する場合、FastAPI アプリのエントリポイントに正しくアクセスできるよう、モジュールの指定方法に工夫が必要です。
おわりに
FastAPI に限らず、他の実装方法でも同様のアプローチが可能だと考えています!
少しでもお役に立てれば幸いです。