Azure Functionsは、クラウドホスト型インテリジェント アプリケーションの構築に役立つ、AI およびAzure サービスと統合するサーバーレス コンピューティング リソースを提供します。 この記事では、関数アプリで使用できる AI 関連のシナリオ、統合、およびリソースについて調査します。
作業の開始方法や他のコンポーネントが作業をどのように消費するかに基づいて、以下の表を使って統合を選択します。
| オプション | 最適 | 呼び出しモデル | 主な考慮事項 |
|---|---|---|---|
| Azure Functions でホストされるスキル | 宣言型命令やツールを用いて、イベント駆動型ワークロードにAI推論を加えましょう。 | 関数トリガーまたはオプションの組み込みHTTPおよびMCPエンドポイント | Preview |
| Python のエージェントバインディング | Python関数に境界付きエージェント推論を追加しつつ、検証、分岐、エラー、出力のコード駆動制御を保持します。 | 標準の Functions トリガーは Python コードを呼び出し、そのコードが挿入された Microsoft Agent FrameworkAgent オブジェクトを呼び出します |
プレビュー;Pythonのみ |
| モデルコンテキストプロトコル(MCP)エンドポイント実装 | 同期的で再利用可能なツールをMicrosoft Foundryエージェントや他のMCPクライアントに公開します。 | ストリーミング可能な HTTP | ホストスキル、一般利用可能なMCP拡張機能、プレビューSDKベースのホスティングから選択できます。 |
| キューベースの Azure Functions ツール | Microsoft Foundryエージェント向けの非同期バックグラウンドツールを実行します。 | Azure Queue Storage 入力および出力キュー | Foundry専用; 標準構成のFoundryエージェントが必要です。 |
| エージェント ワークフロー | 再起動や待機を乗り越えなければならない長期または多段階のAI作業を調整しましょう。 | アプリケーション イベントによって開始される永続オーケストレーション | Durable Functions の直接オーケストレーションまたはホストされたスキルの動的ワークフローを選択してください。 |
この記事は言語固有の記事なので、 ページの上部にあるプログラミング言語を選択してください。
Azure Functions でホストされるスキル
Azure Functions でホストされるスキルは、Azure Functions 上でクラウドでホストされるイベント駆動型のインテリジェントな機能を構築するためのプログラミング モデルです。 Markdown、自然言語命令、宣言的設定で挙動を定義します。 ランタイムは .agent.md ファイルを検出し、トリガーやエンドポイントを登録し、イベントが発生する際にホストされたスキルを実行します。
重要
Azure Functions Hosted Skillsは現在プレビュー中です。 機能、構成名、およびサポートされているコネクタは、一般公開前に変更される可能性があります。
ホストスキルを定義するのにPythonコードを書く必要はありません。 Markdownや設定ファイルで動作、トリガー、設定ツールを定義します。 これらの設定機能を超えてカスタムアプリロジックが必要な場合は、カスタムPythonツールを追加できます。
HTTPリクエスト、スケジュール、メッセージ、データ変更、マネージドコネクタからのイベント、その他のイベントに応じてイベント駆動型アプリケーションにインテリジェントな動作を追加したい場合、Azure Functionsのホスティングスキルを活用してください。 また、オプションの 組み込みMCPエンドポイント を有効にし、各ホストスキルを他のアプリケーション、エージェント、エージェントハーネス向けにAI搭載ツールとして公開することも可能です。
開始するには、次の記事を参照してください。
- 概要: Azure Functions でホストされるスキル
- 始めましょう:Azure Functionsでホストされたスキルを使ったイベント駆動型AIアプリを構築する
- リファレンス: Azure Functions でホストされるスキルの構成
Python のエージェントバインディング
重要
Python関数アプリのエージェントバインディングは現在プレビュー中です。 機能、パッケージ名、設定は一般公開前に変更されることがあります。
エージェントバインディングは、標準的なPython関数呼び出しに設定されたMicrosoftエージェントフレームワークAgentオブジェクトを追加します。 関数はトリガーと決定論的アプリケーションロジックの制御を保持し、ハンドラーはエージェントを呼び出すかどうか、いつ、どのように呼び出すかを決定します。
Python関数が主な実行モデルであり、エージェント推論がその作業の一つの限定部分である場合は、エージェントバインディングを使いましょう。 宣言的に定義されたホストスキルがアプリケーションの主要な実行モデルの場合は、代わりにAzure Functionsのホストスキルを使用してください。 コードがエージェントのライフサイクル全体を制御する必要がある場合は、バインディングを通じて設定済みエージェントを受け取るのではなく、直接Microsoft Agent Framework SDKを使用してください。
エージェント バインディングでも、Durable Functions のオーケストレーションからのリプレイ セーフなエージェント呼び出しがサポートされています。 詳しく知り始めたい場合は、Azure FunctionsのAgent bindings for Pythonをご覧ください。
ツールと MCP サーバー
AI モデルとエージェントは 、関数呼び出し を使用して 、ツールと呼ばれる外部リソースを要求します。 関数呼び出しを使うことで、モデルやエージェントは会話やタスクのコンテキストに基づいて特定の機能を動的に呼び出しることができます。
関数は、要求を処理するために効率的にスケーリングされ、リモート Azure サービスとのエージェントの接続を簡略化する binding 拡張機能を提供するため、エージェントワークフローでの関数呼び出しの実装に特に適しています。 Functions で AI ツールを構築またはホストすると、サーバーレスの価格モデルとプラットフォームのセキュリティ機能も利用できます。
MCPはリモートサーバーとのやり取りにおける業界標準です。 AI モデルとエージェントが外部システムと通信するための標準化された方法が提供されます。 MCPサーバーを使用することで、これらのAIクライアントは外部システムのツールや機能を効率的に判断できます。
Azure Functionsは現在、次の種類のツールを使用した関数コードの公開をサポートしています。
| ツールの種類 | 説明 |
|---|---|
| ホストスキル用の組み込みMCPエンドポイント | 組み込みのMCPエンドポイントを通じてAI推論をツールとして応用するホストスキルを公開します。 |
| リモート MCP サーバー | 決定性MCPツールを作成したり、同期ツール呼び出し用のSDKベースのMCPサーバーをホストしたりしましょう。 |
| Queue ベースのAzure Functions ツール | メッセージキューを通じた非同期関数呼び出しには、Microsoft Foundry専用ツールを活用してください。 |
MCPエンドポイントの公開方法を選択してください
FunctionsはMCPを通じて機能公開のための以下のオプションをサポートしています:
-
.agent.mdファイルで定義された AI を活用したツールを公開できるように、Azure Functions でホストされるスキル向けの組み込み MCP エンドポイントを有効にします。 ホストされたスキルは現在プレビュー段階です。 - MCPバインディング拡張を使って、他の関数型アプリと同様に決定論的なMCPツールを作成・ホストしてください。
- 公式MCP SDKを使用して作成されたセルフホストMCPサーバー。 このホスティング オプションは現在プレビュー段階です。
以下はFunctionsが提供する現在のMCPエンドポイントオプションの比較です:
| 特徴 | ホストスキル用の組み込みMCPエンドポイント | MCP バインド拡張機能 | セルフホステッド MCP サーバー |
|---|---|---|---|
| 最適 | AI搭載のホストスキルをMCPツールとして公開しましょう。 | 関数トリガーとバインディングを備えた決定論的なMCPツールを構築しましょう。 | 公式MCP SDKで構築された既存のサーバーをホストします。 |
| 現在のサポート レベル | Preview | 一般公開 | プレビュー* |
| プログラミング モデル |
.agent.md ホストスキル |
関数のトリガーとバインド | Standard MCP SDK |
| ステートフル実行 | セッション履歴のサポート | サポートされています | 現在、サポートされていません |
| カスタムコード言語 | Python(オプションのカスタムツール) | C# (分離プロセス) Python TypeScript JavaScript Java |
C# (分離プロセス) Python TypeScript Java |
| ホスティング プラン | Flex 従量課金 Premium 専用 (App Service) プラン |
サポート対象の Azure Functions ホスティング プラン | フレックス従量課金のみ |
| その他の要件 | ホストスキルで builtin_endpoints.mcp を有効にしてください |
None | Streamable HTTPトランスポートを使用するステートレスサーバー |
| 実装方法 | ホストスキルランタイムに組み込まれたMCPエンドポイント | MCP バインド拡張機能 | カスタム ハンドラー |
*セルフホステッド MCP サーバーの構成の詳細は、プレビュー中に変更されます。
FunctionsでリモートMCPサーバーを始めるには、以下の言語固有のリソースをご利用ください:
C#については、MCP拡張とSDKベースのホスティングに関する以下のリソースを比較してください。
| オプション | MCP バインド拡張機能 | セルフホステッド MCP サーバー |
|---|---|---|
| Documentation | MCP バインド拡張機能 | 適用なし |
| Samples | リモートカスタムMCPサーバー | Weather サーバー |
| テンプレート | HelloTool | 適用なし |
Pythonについては、MCP拡張とSDKベースのホスティングに関する以下のリソースを比較してください:
| オプション | MCP バインド拡張機能 | セルフホステッド MCP サーバー |
|---|---|---|
| Documentation | MCP バインド拡張機能 | 適用なし |
| Samples | リモートカスタムMCPサーバー | Weather サーバー |
TypeScriptについては、MCP拡張とSDKベースのホスティングに関する以下のリソースを比較してください。
| オプション | MCP バインド拡張機能 | セルフホステッド MCP サーバー |
|---|---|---|
| Documentation | MCP バインド拡張機能 | 適用なし |
| Samples | リモートカスタムMCPサーバー | Weather サーバー |
JavaScriptの場合は、MCP拡張リソースをご利用ください。 SDKベースのホスティングはサポートされていますが、JavaScriptのクイックスタートは現在利用できません。
| オプション | MCP バインド拡張機能 | セルフホステッド MCP サーバー |
|---|---|---|
| Documentation | MCP バインド拡張機能 | 適用なし |
| Samples | まだ使用できません | まだ使用できません |
Javaの場合は、MCP拡張のドキュメントをご利用ください。 言語特有のサンプルは現在入手できません。
| オプション | MCP バインド拡張機能 | セルフホステッド MCP サーバー |
|---|---|---|
| Documentation | MCP バインド拡張機能 | 適用なし |
| Samples | まだ使用できません | まだ使用できません |
現在、PowerShell は、どちらの MCP サーバー ホスティング オプションでもサポートされていません。
Microsoft Foundry Agent Service 向けのキュー ベースの Azure Functions ツールを選択する
Microsoft Foundry Agent Serviceは、非同期関数呼び出しのためのAzure Functions専用ツールも提供しています。 エージェントはリクエストをAzure Queue Storageの入力キューに置きます。 キュートリガー関数はリクエストを処理し、結果を出力キューを通じて返します。
このFoundry特有の統合は、即時応答を必要としないバックグラウンド作業に活用し、信頼性の高いメッセージ配信と再試行の恩恵を受けられます。 同期的なやり取りや他のAIクライアントで再利用したいツールには、代わりにMCPサーバーを使いましょう。
キューベースのAzure Functionsツールは、標準設定のFoundryエージェントを必要とします。 サポートされているSDKを確認し、ツールを構築するには、「Use Azure Functions with Foundry Agent Service」をご覧ください。
エージェント ワークフロー
アプリケーションコードが信頼できるエージェントコール、モデルコール、承認、その他の作業の順序を定義している場合に、Durable Functionsを活用してください。 Durable Functionsは、待機や再起動の間もオーケストレーション状態を保持し、関数チェーン、ファンアウト/ファンイン、人間操作などの共通パターンをサポートします。
Azure Functionsのホスト型スキルを使う場合、動的ワークフローはモデルがツール呼び出し、サブエージェントタスク、待機の構造化された計画を作成するプレビューオプションを提供します。 ホステッド スキルのランタイムは、そのプランを Durable Functions のオーケストレーションとして実行します。 作業が一度のやり取りで終わる場合は直接ツールコールを使い、作業が1ターンを超えて進めたり、扇状に広げたり、待機したり、再起動を乗り越えなければならない場合は動的なワークフローを用いましょう。
| オプション | ワークフローを定義するのは誰か | 最適 | 主な考慮事項 |
|---|---|---|---|
| Direct Durable Functions オーケストレーション | アプリケーション コード | 予測可能なワークフローで、明示的な制御フロー、やり直し、待ち時間、承認があります | あなたの言語に合ったDurable Functionsプログラミングモデルを使いましょう。 |
| ホスト型スキルの動的ワークフロー | AI モデル | ツール呼び出し、サブエージェントタスク、待機、実行時のファンアウトを計画する適応型ワークフロー | プレビュー;Azure Functionsのホストスキルが必要です。 |
実装のガイダンスについては、 アプリケーションパターン と 動的ワークフローの作成と実行をご覧ください。
Azure Functions用の AI ツールとフレームワーク
Functionsを使えば、好きな言語でアプリを作成し、お気に入りのライブラリを利用できます。 この柔軟性により、AI 対応関数アプリで幅広い AI ライブラリとフレームワークを使用できます。
これらのMicrosoftのAIプラットフォームおよびフレームワークは、異なるアプリケーションアーキテクチャをサポートしています:
| プラットフォームまたはフレームワーク | 最適 | Azure Functionsでの動作方法 |
|---|---|---|
| Microsoft Agent Framework | アプリケーション内で動作するコードファーストエージェントのロジックとワークフロー | 関数コード内でフレームワークSDKを実行してください。 |
| Microsoft Foundry Agent Service | Functionsホスト型ツールを使用するマネージドエージェント | エージェントをホストサービスとして作成・管理します。 ファウンドリーエージェントは、MCP、キュー、OpenAPIを通じてFunctionsがホストするツールを呼び出すことができます。 |
| Microsoft Foundry SDK | マネージドエージェントを必要としない直接モデルおよびサービスコール | 関数コードから直接Foundryのモデルやサービスを呼び出してください。 |
Functionsでは、アプリがサードパーティのライブラリやフレームワークを参照することもできるため、お気に入りのAIツールやライブラリをAI対応機能で活用できます。