適用対象: Azure Logic Apps (従量課金)
注
この機能はプレビュー段階であり、料金が発生する可能性があり、 Microsoft Azure プレビューの追加使用条件に従います。
多くの場合、エージェントは、API の呼び出し、システムの更新、複数の手順の調整など、外部システムと連携する必要があります。 ただし、エージェントと統合ロジックを混在させる場合や、統合ロジックをエージェント コードに直接埋め込む場合は、ソリューションの保守、テスト、更新、および進化が困難になります。 エージェントは、実行するアクションまたは使用するツールを適切に選択できます。 ただし、再試行、実行時間の長い手順、または外部システムの障害を管理するようには設計されていません。
Foundry で、アクションとして Azure Logic Apps からエージェントにワークフローを追加 します。 その後、エージェントは、Microsoft および Microsoft 以外のサービスと製品全体で、多くの場合、コードなしで、複数のステップのビジネス タスクを実行できます。 ソリューションは、再利用可能な統合ロジックを使用してエージェント機能を利用してメリットを得ることができます。
次の図は、Foundry (クラシック) のエージェント アクションが Azure Logic Apps のワークフローとどのように関連しているかを示しています。
エージェントは、統合ワークフローを呼び出す適切なアクションを選択することに重点を置いていますが、ワークフローはオーケストレーションタスクと統合タスクを処理します。
Azure Logic Apps では、1,400 以上のコネクタとネイティブの組み込みデータ操作がサポートされているため、エージェントは多くの Microsoft および Microsoft 以外のサービスや製品と統合できます。 事前構築済みのコネクタまたは操作が存在しない場合は、カスタム コネクタを作成します。
この記事では、Foundry のエージェント アクション ツールとして Azure Logic Apps からワークフローを作成する方法について説明します。 ウィザードでは、アクションを設定する方法について説明します。 その後、ワークフローを編集するか、Azure Logic Apps のワークフロー デザイナーでワークフローを拡張できます。
詳細については、以下を参照してください:
注
この記事では、 Microsoft Foundry (クラシック) ポータルを参照します。 新しいポータルの詳細については、新しい Microsoft Foundry ポータルを参照してください
[前提条件]
Azure アカウントとサブスクリプション。 無料の Azure アカウントを取得します。
-
このプロジェクトでは、作業を整理し、AI アプリとソリューションの構築中に状態を保存します。
プロジェクトをホストしてチーム コラボレーション環境を設定できるように ハブ プロジェクトを作成 するには、 最小特権の原則に基づいて、Microsoft Entra ロールベースのアクセス制御 (RBAC) に対して次のいずれかのロールが必要です。
- 共同作成者 (最小特権)
- 所有者
他のロールがある場合は、ハブをあなたのために作成してもらう必要があります。 詳細については、以下を参照してください:
Foundry プロジェクト用にデプロイ済みの Azure OpenAI モデル バージョン gpt-4.1 またはそれ以前。
このモデルがない場合は、「モデルのデプロイ」 を参照してください。
次の要件を満たす 従量課金ロジック アプリのリソースとワークフロー 。
要件 説明 ホスティング オプション 従量課金ホスティング オプションを使用します。 Azure サブスクリプション Foundry プロジェクトと同じサブスクリプションを使用します。 Azure リソース グループ Foundry プロジェクトと同じリソース グループを使用します。 要求 トリガー ワークフローで後続のアクションを実行する前に満たす条件を指定する操作。 既定のトリガー名は、 HTTP 要求が受信されたときです。
エージェント アクションの呼び出しには、REST ベースの API が必要です。 要求トリガーは、サービスまたはシステムがワークフローを実行するために呼び出すことができる REST エンドポイントを提供します。 そのため、アクション呼び出しの場合は、 要求 トリガーで始まるワークフローのみを使用できます。トリガーの説明 この説明は、Azure Logic Apps でトリガー情報を提供することで、エージェントが Foundry で正しいアクションを選択するのに役立ちます。 トリガー スキーマ トリガーに必要な入力を記述する JSON スキーマ。
Foundry は、アクション定義を使用してスキーマを自動的にインポートします。 詳細については、「 要求 トリガー」を参照してください。応答 アクション ワークフローは常にこのアクションで終了する必要があります。このアクションは、ワークフローの完了時に Foundry に応答を返します。 ビジネス ロジックまたはユース ケースを実装するために、ワークフローには、ビジネス シナリオのロジックを実装するランタイムネイティブの組み込み操作など、 コネクタ ギャラリーからの他のアクションを含めることができます。
たとえば、次の図は、Foundry で
Get-weather-forecast-todayという名前のエージェントのツールとして追加されるWeatherAgentという名前のアクションの例を示しています。 このアクションは、Azure Logic Apps でGet-weather-forecast-todayという名前のワークフローを実行します。詳細については、以下を参照してください:
Foundry プロジェクトの情報を使用して、次の環境変数を設定します。
export PROJECT_ENDPOINT="<your_project_endpoint>" export MODEL_DEPLOYMENT_NAME="<your_model_deployment_name>" export SUBSCRIPTION_ID="<your_Azure_subscription_ID>" export resource_group_name="<your_resource_group_name>"サンプル コードについては、 GitHub の AzureLogicAppTool ユーティリティを参照してください。
制限事項
このリリースには、次の制限があります。
| 制限事項 | 説明 |
|---|---|
| ロジック アプリ ワークフローのサポート | 現在、エージェント アクションでは、マルチテナント Azure Logic Apps で実行される従量課金ロジック アプリ ワークフローのみがサポートされています。 従量課金ロジック アプリ リソースには、ワークフローを 1 つだけ含めることができます。 現在、エージェント アクションは、シングルテナントの Azure Logic Apps、App Service Environment、またはハイブリッド デプロイの標準ロジック アプリ ワークフローをサポートしていません。 Standard ロジック アプリ リソースには、複数のワークフローを含めることができます。 |
詳細については、「 ロジック アプリのデプロイのホスティング オプション」を参照してください。
1: エージェントにアクションを追加する
ロジック アプリ ワークフローを実行するエージェントのアクションを設定するには、次の手順に従います。
Foundry (クラシック) ポータルで、プロジェクトを開きます。
プロジェクトサイドバーの[ ビルドとカスタマイズ]で、[エージェント]を選択 します。
エージェントのモデルをデプロイしなかった場合は、続行する前にウィザードが開き、このタスクを完了できます。 エージェントに対するアクションをサポートするモデルを必ず選択してください。 詳細については、「 モデルのデプロイ」を参照してください。
[ エージェントの作成とデバッグ ] ページの [ マイ エージェント] で、エージェントを選択します。
エージェントの一覧の横にある [セットアップ ] セクションで、[ アクション] セクションまで下にスクロールし、[ 追加] を選択します。
注
すべてのモデルがエージェント アクションをサポートしているわけではありません。 [アクション] セクションが使用できない場合は、GPT-4.1 以前のモデルをデプロイする必要があります。
アクションの 追加 ウィザードで、 Azure Logic Apps を選択します。
[ アクションの選択] で、次のいずれかのラベルを持つ定義済みのアクションを選択します。
アクション ラベル 説明 Microsoft 作成 このアクションでは、Microsoft が作成したテンプレートを使用して、アクションのワークフローを作成します。 ワークフロー このアクションでは、Azure サブスクリプションの対象となるロジック アプリ ワークフローをテンプレートとして使用して、アクションのワークフローを作成します。
注: このオプションを選択した場合は、「 アクションの詳細を確認する」という名前のセクションに進んでください。 ワークフローがアクション ギャラリーに期待どおりに表示されない場合は、 前提条件を確認します。#。次の例では、 MSN Weather を使用して今日の天気予報を取得という名前の Microsoft 作成アクションを使用します。
ロジック アプリの追加アクション ウィザードの [いくつかの基本情報を入力] で、次の情報を指定します。
パラメーター 必須 価値 説明 アクション名 イエス < action-name> わかりやすいが、タスクに重点を置いた動詞優先の簡潔なアクション名。 この名前は、Azure Logic Apps のロジック アプリ リソースとワークフローにも使用されます。
注: 以下を確認してください。
- アクション名には、文字、数字、および次の特殊文字のみを使用できます: -、 (、 )、 _、または '。
- 空白やその他の特殊文字は使用できません。
- 従量課金ロジック アプリのリソースとワークフローが組み合わされ、1 対 1 のリレーションシップがあるため、同じ名前が使用されます。 これに対し、Standard ロジック アプリ リソースには、異なる名前を使用する複数のワークフローを含めることができます。
この例では、 今日の Get-weather-forecast-を使用します。アクションの説明 イエス < action-description> アクションの目的を明確に記述する説明。
この例では、このアクションを使用して、グローバルなマルチテナントAzure Logic Appsで実行される、今日の天気予報を取得する呼び出し可能な従量課金ロジックアプリのワークフローを作成します。サブスクリプション イエス < Azure サブスクリプション> 使用する Azure サブスクリプション 。おそらく、プロジェクトとモデルと同じです。 リソース グループ イエス < Azure リソース グループ> 使用する Azure リソース グループ。 場所 イエス < Azure リージョン> ロジック アプリのリソースとワークフローをホストする Azure リージョン。 次のスクリーンショットは、 サンプル アクション Get-weather-forecast-today の詳細の例を示しています。
完了後は、次へ を選択します。
2: 接続を作成して認証する
アクションに必要な接続を作成し、必要なサービス、システム、アプリ、またはデータ ソースへのアクセスを認証するには、次の手順に従います。 基になるテンプレートは、このアクションおよび対応するロジック アプリ ワークフローで使用するコネクタを指定します。
ロジック アプリの追加アクション ウィザードの [認証] で、アクション用に作成する必要がある接続を認証します。
[ 接続 ] 列で、関連するサービスまたはデータ ソースの [接続 ] を選択します。
次のスクリーンショットは、MSN Weather サービスの作成と認証の接続例を示しています。
一部の接続ではより詳細な情報が必要になるため、要求された情報を入力するプロンプトに従います。
必要な接続ごとに、これらの手順を繰り返します。
完了後は、次へ を選択します。
3: アクションの詳細を確認する
すべてのアクション情報が正しく表示されることを確認します。 Microsoft が作成したアクションを選択した場合は、確認の声明を確認して同意します。
ロジック アプリアクションの追加ウィザードの [リソース] で、指定されたすべてのアクション情報を確認します。
選択した Microsoft 作成アクションの場合は、次の手順を実行します。
[次へ]を選択して[リソース]セクションを終了した後、次のイベントを理解し、承認するステートメントを確認してください。
前の手順に戻ることはできません。
このアクションにより、コンスンプション ロジック アプリのリソースが作成されます。
Azure Logic Apps に接続すると、Azure アカウントに料金が発生します。
従量課金ロジック アプリ ワークフローの課金モデルの詳細については、次を参照してください。
同意するには、確認ボックスを選択します。次に例を示します。
完了後は、次へ を選択します。
4: ツールとしてのアクションの作成を完了する
ポータルがツールとしてアクションに関して生成する情報を確認します。 エージェントは、この情報を使用してアクション (ツール) を実行し、関連する Azure、Microsoft、および Microsoft 以外のサービスまたはリソースへのアクセスを認証します。
ロジック アプリの追加アクション ウィザードの [スキーマ] セクションで、次の情報を確認し、ツールを呼び出すシナリオに関する説明を必ず入力します。
パラメーター 説明 ツール名 エージェントがアクションを実行し、Azure、Microsoft、外部サービス、データ ソース、または特殊な AI モデルにアクセスして、エージェントがデータの取得、タスクの実行、他のプラットフォームとの対話を行うために使用するツールの編集可能な名前。
注:
- ツール名には、文字、数字、アンダースコア (_) 文字のみを使用できます。
- 空白やその他の特殊文字は使用できません。認証用の接続 毎回資格情報を要求することなく、ツールが Azure、Microsoft、および外部リソースにアクセスするために使用する接続の読み取り専用の名前。 詳細については、「 Foundry ポータルの接続」を参照してください。 ツールを呼び出す方法について説明する エージェントがツールを呼び出すタイミングを指定する説明。 [スキーマ] JavaScript Object Notation (JSON) 形式のロジック アプリ ワークフローのスキーマ。 完了したら、[作成] を選択します。
ウィザードによって、エージェントの [エージェント] ページが表示されます。 [セットアップ] セクションの [アクション] セクションに、Azure Logic Apps のツール名とアイコンが表示されます。次に例を示します。
5: エージェント アクションをテストする
エージェントプレイグラウンドを使用して新しいエージェントアクションを試すには、次の手順に従います。
[ エージェント ] ページの [セットアップ ] セクションで、[ プレイグラウンドで試す] を選択します。
[ エージェントのプレイグラウンド ] ページのユーザー クエリ チャット ボックスで、天気に関する質問をします。次に例を示します。
ロンドン の天気は何ですか? 結果を箇条書き形式で表示します。
エージェントは、次の例のような応答を返します。
6: リソースを削除する
このガイド用に作成したリソースが必要ない場合は、課金が継続されないように削除します。 これらの手順に従って、これらのリソースを含むリソース グループを削除することも、各リソースを個別に削除することもできます。
Foundry ポータルで、エージェントからアクションを削除するには、アクション名の横にある省略記号 (...) ボタンを選択し、[削除] を選択 します。
Azure portal のタイトル バーの検索ボックスに「リソース グループ」と入力し、[リソース グループ] を選択します。
デプロイされたハブ リソースを含むリソース グループを見つけます。
[概要] ページのツール バーで、[リソース グループの削除] を選択します。
確認ウィンドウが表示されたら、リソース グループ名を入力して、[削除] を選択します。
1: 環境変数を設定する
システムで、次の環境変数を設定します。
| 環境変数 | 説明 |
|---|---|
PROJECT_ENDPOINT |
Microsoft Foundry プロジェクトのエンドポイント。 この値を見つけるには、Foundry ポータルのプロジェクト サイドバーで [ 概要] を選択します。 Microsoft Foundry プロジェクト エンドポイントという名前のプロパティを見つけます。 |
MODEL_DEPLOYMENT_NAME |
AI モデルのデプロイ名。 この値を見つけるには、Foundry ポータルのプロジェクト サイドバー メニューの [ マイ アセット ] セクションで [ モデルとエンドポイント] を選択し、[ 名前] 列を確認します。 |
SUBSCRIPTION_ID |
Azure サブスクリプションの ID。 |
resource_group_name |
リソース グループの名前。 |
サンプル コードについては、次を参照してください。
Azure Logic Apps と Foundry エージェントの統合の完全なサンプル
このサンプルでは、Foundry (クラシック) のエージェントを Azure portal の従量課金ロジック アプリと統合する方法を示します。
2: プロジェクト クライアントを作成する
Foundry プロジェクトやその他のリソースに接続するには、次の手順に従ってクライアント オブジェクトを作成します。
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
# Initialize the AIProjectClient
project_client = AIProjectClient(
endpoint=os.environ["PROJECT_ENDPOINT"],
credential=DefaultAzureCredential()
)
3: ロジック アプリを登録する
トリガーの名前と情報を指定して、消費型ロジックアプリリソースを登録します。
AzureLogicAppToolユーティリティ コードを見つけるには、GitHub の完全なサンプルを参照してください。
from user_logic_apps import AzureLogicAppTool
# Logic app details
LOGIC_APP_NAME = "your_logic_app_name"
TRIGGER_NAME = "your_trigger_name"
# Register the logic app name with the agent tool utility by extracting the following values from environment variables
subscription_id = os.environ["SUBSCRIPTION_ID"]
resource_group = os.environ["resource_group_name"]
# Create and initialize AzureLogicAppTool utility
logic_app_tool = AzureLogicAppTool(subscription_id, resource_group)
logic_app_tool.register_logic_app(LOGIC_APP_NAME, TRIGGER_NAME)
print(f"Registered logic app '{LOGIC_APP_NAME}' with trigger '{TRIGGER_NAME}'.")
4: アクションとしてワークフローを使用してエージェントを作成する (ツール)
次のコードでは、エージェントを作成し、ロジック アプリをエージェント アクションまたはツールとしてアタッチします。 この例では、ロジック アプリ ワークフローが電子メールを送信します。
from azure.ai.agents.models import ToolSet, FunctionTool
from user_functions import fetch_current_datetime
from user_logic_apps import create_send_email_function
# Create the logic app action for the agent
send_email_func = create_send_email_function(
logic_app_tool, logic_app_name
)
# Prepare the action tool for the agent
functions_to_use = {fetch_current_datetime, send_email_func}
# Create an agent and assign the toolset
functions = FunctionTool(functions=functions_to_use)
toolset = ToolSet()
toolset.add(functions)
agent = project_client.agents.create_agent(
model=os.environ["MODEL_DEPLOYMENT_NAME"],
name="SendEmailAgent",
instructions="You're a specialized agent for sending emails.",
toolset=toolset,
)
print(f"Created agent, ID: {agent.id}")
5: 通信用のスレッドを作成する
次のコードでは、スレッドを作成し、プロジェクト クライアントとエージェントの間の会話を開始するユーザー メッセージを追加します。
# Create a thread for communication
thread = project_client.agents.threads.create()
print(f"Created thread, ID: {thread.id}")
# Create a message in the thread
message = project_client.agents.messages.create(
thread_id=thread.id,
role="user",
content="Hello, send an email to <RECIPIENT_EMAIL> with the date and time in '%Y-%m-%d %H:%M:%S' format.",
)
print(f"Created message, ID: {message['id']}")
6: エージェントとアクションをテストする
エージェントがタスクを実行する方法をテストするには、エージェントを実行し、モデルでロジック アプリ ツールがどのように使用されているかを確認し、出力を確認します。
# Create and run the agent on the thread
run = project_client.agents.runs.create_and_process(
thread_id=thread.id, agent_id=agent.id
)
print(f"Run finished with status: {run.status}")
if run.status == "failed":
print(f"Run failed: {run.last_error}")
# Fetch, log, and display all messages
messages = project_client.agents.messages.list(thread_id=thread.id)
for message in messages:
if msg.txt = msg.text_messages[-1]
print(f"Role: {msg.role}: {last_text.text.value}")
7: リソースをクリーンアップする
リソースのクリーンアップが完了したらエージェントを削除し、課金が続行されないようにします。
# Delete the agent
project_client.agents.delete_agent(agent.id)
print("Deleted agent.")
省略可能: 基になるロジック アプリとワークフローを確認する
アクションの実行後、基になるロジック アプリのリソースとワークフローを Azure portal で表示できます。 ワークフローの実行履歴を確認して、ワークフローで発生する可能性がある問題をデバッグまたはトラブルシューティングできます。
Azure portal のタイトル バーの検索ボックスに、作成したアクションの名前を入力します。
結果の一覧の [ リソース] で、ロジック アプリ リソースを選択します。
ワークフローの実行履歴、入力、出力、およびその他の情報を表示するには、ロジック アプリのサイドバーの [開発ツール] で [ 実行履歴] を選択します。
[ 実行履歴 ] ボックスの一覧で、最新のワークフロー実行を選択します。次に例を示します。
監視ビューが開き、ワークフロー内の各操作の状態が表示されたら、操作を選択して情報ウィンドウを開き、操作の入力と出力を確認します。
次の使用例は、 今日の予測の取得という名前のアクションを選択します。次に例を示します。
詳細については、「 ワークフローの状態と実行履歴を表示する」を参照してください。
省略可能: デザイナーでワークフローを開く
ワークフローの定義と操作を確認したり、ワークフローを編集したりするには、デザイナーを開きます。
ロジック アプリのサイドバーの [ 開発ツール] でデザイナーを選択します。 監視ビューをまだ表示している場合は、監視ビューのツール バーで [ 編集] を選択します。
トリガーとアクションを含むワークフローの操作を確認できるようになりました。次に例を示します。
操作のパラメーターと設定を表示するには、デザイナーで操作を選択します。次に例を示します。
ワークフローの動作を拡張するには、さらにアクションを追加します。
任意のワークフローが Foundry のエージェントの [ロジック アプリの追加] アクション ギャラリーを通じて表示され、エージェント ツールとして実行されるようにするには、ワークフローに加えた変更が引き続き 特定の要件を満たしていることを確認します。
注意事項
ワークフローは編集できますが、 要求 トリガーとワークフロー内の既存のアクションを削除または変更しないでください。 そうしないと、エージェントと Foundry の対応するアクションと Azure portal のワークフローとの関係が壊れるリスクがあります。 これらの項目は連携するパラメーターを設定しているため、これらの操作に対する変更によって、エージェントのアクションが中断されるリスクがあります。
代わりに、エージェントにアクションとして追加できるカスタム バージョンまたは別のワークフローを作成することを検討してください。 たとえば、トリガーでは、トリガーを呼び出すために必要な次のパラメーターを使用します。
パラメーター 説明 名前 この名前は、トリガーの HTTPS URL の一部です。 ワークフローの外部にある外部の呼び出し元 (他のサービスなど) は、この URL に HTTPS 要求を送信します。これにより、トリガーが起動され、ワークフローが開始されます。 トリガーは常にワークフローの最初のステップであり、トリガーを実行するために満たす条件を指定します。 HTTPS URL ワークフローを初めて保存すると、この URL が生成され、ワークフローに対してトリガーによって作成されるエンドポイントの呼び出しに使用されます。 方式 この設定では、トリガーがすべての HTTPS メソッドを受け入れるか、特定の HTTPS メソッドのみを受け入れるかを指定します。 要求本文の JSON スキーマ トリガーが HTTPS 要求で受け取ると予想される入力を検証する場合は、外部呼び出し元が要求に含める入力を指定して検証する JSON スキーマを含めます。 詳細については、「 トリガーまたはアクションを使用したワークフローの構築」を参照してください。
変更を保存するには、デザイナーのツール バーで [保存] を選択します。
省略可能: デザイナーで更新されたワークフローをテストする
天気ワークフローを変更する場合、または別のワークフローをテストする場合は、次の手順に従います。
デザイナーのツール バーで、[ 実行>ペイロードを使用して実行] を選択します。
[ ペイロードを使用して実行 ] ウィンドウが開いたら、[ 本文 ] フィールドに、予想されるトリガー入力を JSON 形式で指定します。次に例を示します。
{ "location": { "type": "London", "description": "Location for the weather" } }完了したら、[実行] を選択 します。
[ 出力 ] タブの 応答本文 には、ワークフローからの結果と応答が含まれます。
ワークフロー実行でエラーが発生する場合、またはトラブルシューティングが必要な場合は、ワークフローの実行履歴を開きます。 ワークフロー 実行履歴の表示に関連する手順を使用して、各操作の入力と出力を調べます。
課金と価格
使用量ベースの課金モデルに基づき、消費型ロジックアプリのワークフローには料金が発生します。
Azure Logic Apps については、以下を参照してください。
Foundry については、次のリソースを参照してください。
FAQ
Foundry から Azure Logic Apps への呼び出しに対する認証のしくみ
Azure Logic Apps では、ロジック アプリ ワークフローの Foundry から 要求 トリガーへの受信呼び出しに対して、次の種類の認証がサポートされています。
Shared Access Signature (SAS) ベースの認証
エージェントがロジック アプリ ワークフローを実行するアクションを呼び出すと、Foundry はワークフローの要求トリガーの コールバック URL に 要求 を送信します。 このコールバック URL (SAS を含む) は、Azure Logic Apps の REST API から ワークフロー - リスト コールバック URL を 使用して取得できます。
SAS 認証の場合、Azure Logic Apps では次のタスクもサポートされます。
- 有効期間を指定して SAS URL を作成します。
- 複数のキーを使用し、必要に応じて回転させます。
詳細については、「 Shared Access Signature (SAS) キーまたはトークンを生成する」を参照してください。
Microsoft Entra ID ベースの OAuth 認証ポリシー
Azure Logic Apps では、Microsoft Entra ID で OAuth を使用してトリガーを要求する呼び出しの認証がサポートされています。 OAuth トークンを検証するときに使用する認証ポリシーを指定できます。 詳細については、「 Azure Logic Apps で Microsoft Entra ID を使用して OAuth 2.0 を有効にする」を参照してください。
Azure Logic Apps での受信呼び出しのセキュリティ保護の詳細については、「 要求ベースのトリガーへの受信呼び出しのアクセス」を参照してください。