Azure Functions では、Azure OpenAI 向けの拡張機能(Preview)が提供されていますが、関数を呼び出した際の 404 エラーに遭遇したので顛末をまとめておきます。
learn.microsoft.com
現象
Text completion input binding などの関数を呼び出した際に、下記のように 404 エラーが発生しました。
[2025-01-17T06:48:58.834Z] Executed 'Functions.GenerateText' (Failed, Id=88d16bb1-2c58-4db4-a173-98208885ae76, Duration=1065ms) [2025-01-17T06:48:58.838Z] System.Private.CoreLib: Exception while executing function: Functions.GenerateText. Azure.AI.OpenAI: The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again. [2025-01-17T06:48:58.849Z] Status: 404 (DeploymentNotFound) [2025-01-17T06:48:58.852Z] ErrorCode: DeploymentNotFound [2025-01-17T06:48:58.856Z] [2025-01-17T06:48:58.861Z] Content: [2025-01-17T06:48:58.864Z] {"error":{"code":"DeploymentNotFound","message":"The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again."}} [2025-01-17T06:48:58.867Z] [2025-01-17T06:48:58.870Z] Headers: [2025-01-17T06:48:58.877Z] x-ms-client-request-id: d6ccf64a-504c-471c-b100-d8ff659824d9 [2025-01-17T06:48:58.880Z] apim-request-id: REDACTED [2025-01-17T06:48:58.883Z] Strict-Transport-Security: REDACTED [2025-01-17T06:48:58.886Z] X-Content-Type-Options: REDACTED [2025-01-17T06:48:58.889Z] x-ms-region: REDACTED [2025-01-17T06:48:58.895Z] Date: Fri, 17 Jan 2025 06:48:57 GMT [2025-01-17T06:48:58.897Z] Content-Length: 197 [2025-01-17T06:48:58.899Z] Content-Type: application/json [2025-01-17T06:48:58.901Z] .
原因
以前は正常に動作していたコードなので1時間くらい悩んだのですが、原因はシンプルでエンドポイントが間違っていました。
Azure Portal ではなく、
AI Foundry のモデルのエンドポイントを使うのが正解です。URL の openai/deployments/gpt-4o/chat/completions?api-version=2024-08-01-preview
を除いた https://xxx-xxx-eastus2.cognitiveservices.azure.com/
までを使ってください。
ちなみに、以前は Azure Portal のエンドポイントで正常に動作していました。正確には Azure Functions ではなく、AOAI 側のエンドポイントの違いです。
対応
local.settings.json において、正しいエンドポイントとキーを定義します。
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "AZURE_OPENAI_ENDPOINT": "https://xxx-xxx-eastus2.cognitiveservices.azure.com/", "AZURE_OPENAI_KEY": "xxx", "CHAT_MODEL_DEPLOYMENT_NAME": "gpt-4o" }