Posts

  • POST
以下のようにまとめると、読みやすくて注意点も強調できる記事になります。特に「なぜFastAPI必須か」「環境変数設定が必要な理由」を明確に書くと読者に刺さります。 +++ title = “Azure Functions Pythonでストリーミングを実装するときの注意点” date = 2025-08-09T14:53:40+09:00 archives = “2025” thumbnail = “img/azure/azure_logo.png” toc = true tags = [ “Azure” ] categories = [ “cloud” ] menu = “main” +++ はじめに 2024年5月から、Azure FunctionsのPythonでもHTTP Streamingが公式サポートされるようになりました。 本記事では、実装の流れとハマりやすい落とし穴について解説します。 Azure Functionsでストリーミングを実装する Functionsでストリーミングを実装する場合、以下の設定が必要になります。 環境変数設定 ストリーミングを使用する場合は、Azure Functionsの環境変数に以下の設定が必要になります。 この2つの変数の設定がないと、Functionsのリクエストがタイムアウトします 設定がなくてもエラーログなどは出力されないので、トラブルシューティングに難儀することになることを防ぐため、設定忘れがないよう注意しましょう。 PYTHON_ENABLE_INIT_INDEXING=1 PYTHON_ISOLATE_WORKER_DEPENDENCIES=1 requirements.txt ストリーミングする際は、拡張機能としてFast-APIを有効にする必要があります。 azure-functions azurefunctions-extensions-http-fastapi function_app.py 上記はHello → from → Azure → Functions → Stream!の順にレスポンスをストリーミングで応答するコードです。 StreamingResponseクラスに非同期関数generate_hello_stream()の戻り値をyieldで指定することでストリーミングで応答されます。 yield は、Pythonでジェネレーター(または非同期ジェネレーター)として値を順次返すために使われるキーワードです。 import asyncio import azure.functions as func from azurefunctions.