1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Foundry で Agent から Logic Apps を実行させる

1
Last updated at Posted at 2026-03-24

今回は Microsoft Foundry で作成した Agent に Logic Apps のワークフローをツール登録し、Agent への指示を通して Logic Apps を実行させる手順を説明します。
「マネージド ID 認証によって Agent から Logic Apps へ接続するための準備」 が本記事のポイントとなります!

Azure リソース準備

  • Microsoft Foundry
    ※今回は新 UI を利用します
  • Logic Apps (Consumption プラン)

具体的な手順

①Logic Apps を作成する

まずは、Consumption プランで Logic Apps を作成します。
今回は、与えられた KQL を利用して Log Analytics に対してクエリ実行するシンプルなフローを構成します。

必ず HTTP トリガーのフローを作成してください。
Agent のツール登録のための必須事項となります。

HTTP トリガーのリクエストボディのスキーマは、実行する Logic Apps の目的に応じて設定します。
今回は Agent が指定した KQL のクエリを実行させるのが目的なので、KQL のクエリ本文が入る想定の String 型プロパティを一つだけ用意します。
image.png

次にアクションの追加をします。「Monitor」と検索ボックスに入力し、Azure Monitor のアクションを検索します。
「クエリを実行して結果を一覧表示する」というアクションを選択します。
image.png

サブスクリプション、リソースグループ、Log Analytics Workspace のリソース名などを設定します。
クエリエリアには、トリガーで設定した引数(今回は「kql」というプロパティ名)を設定します。
時間範囲は、クエリ内で指定をする想定のため「Set in query」と入力します。
image.png

【最終的な実装イメージ】
image.png

②アプリ登録

今回の肝となる「Microsoft Foundry から Logic Apps へのマネージド ID 認証」を実現するにあたり、 Microsoft Entra ID でアプリ登録をします。

Microsoft Foundry(Agent)から Microsoft Entra ID へアクセストークン発行を要求する際に、そのトークンの宛先(Audience)をアプリ登録で定義します。
「Agent のツール登録時の認証設定」と「Logic Apps の認可ポリシーの設定」、この二つにおいて Audience を使用します。

参考:マネージド ID による認証 (Microsoft Entra ID)

まずは「アプリ登録」メニューから登録を行います。
image.png

判別しやすいアプリ名を設定し、登録します。
image.png

登録完了後、今回必要となる Audience を定義します。
「API の公開」メニューを開き、「アプリケーション ID の URI」を追加します。
image.png

デフォルトの「api://app-client-id」の形式で保存します。
image.png

③OAuth ポリシーの有効化(Logic Apps)

Logic Apps は何もポリシーを設定していないときは、 Request トリガーの URL を知っていれば呼び出せる状態です。一方で認可ポリシーを追加すると、受信呼び出しに対して OAuth 2.0 アクセストークンを使った認可を行う仕組みになります。

参考:Microsoft Entra ID を使用した OAuth 2.0 を有効にする

先ほど、作成した Logic Apps の「承認」メニューからポリシーを追加します。
image.png

以下の項目を設定し保存します。

  • ポリシー名:分かりやすい名前をつけてください
  • OAuth タイプ:Azure Active Directory(AAD)
  • Issuer:「https://sts.windows.net/<テナントID>/」
    ※ Issuer の入力値については Microsoft Learn で説明があります。
  • Audience:先ほど設定をしたアプリケーション ID の URI

image.png

④Agent を作成する(Microsoft Foundry)

次に Microsoft Foundry で Agent を作成します。
「エージェント作成」ボタンから任意のエージェント名を入力し作成します。
image.png

分かりやすい Agent 名をつけて作成します。
image.png

事前にモデルのデプロイを行っておきましょう。今回は GPT-4.1 モデルを使用しました。

作成完了すると、以下のような Agent のプレイグラウンドに遷移します。
image.png

⑤Agent にツールを登録する

次に、Agent のプレイグラウンドでツール登録をします。「追加」ボタンを押します。
image.png

ツール選択モーダルが出ますので、「カスタム」メニューの「OpenAPIツール」を選択します。
image.png

Microsoft Foundry の旧 UI では、Logic Apps の選択メニューがありますが、新 UI では廃止されています。

旧 UI のアクション設定メニューから「Microsoft Logic Apps」を選択できます。
image.png

「OpenAPIツール」を選択すると、設定モーダルが開きます。
まずは分かりやすいツール名と説明を入力しましょう。

「説明」の項目は、Agent がツール実行の判断材料とするため、本番適用する際はできるだけ明確に書きましょう。

認証は「マネージド ID」を選択します。

image.png

OpenAPI 3.0 スキーマは以下に今回使用したサンプルを貼ります。
作成した Logic Apps に応じて、タイトル(title)や URL を書き換えてください。

OpenAPI 3.0 スキーマ
{
  "openapi": "3.0.3",
  "info": {
    "title": "AITool_KQL",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://prod-29.japaneast.logic.azure.com:443/workflows/9df23e340dc14d47932994d1a6af8c8d/triggers/When_an_HTTP_request_is_received/paths/invoke"
    }
  ],
  "paths": {
    "/": {
      "post": {
        "operationId": "invoke_kql",
        "summary": "Invoke Logic Apps HTTP trigger to execute KQL",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "default": "2016-10-01"
            }
          },
          {
            "name": "sp",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "default": "/triggers/When_an_HTTP_request_is_received/run"
            }
          },
          {
            "name": "sv",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "kql": {
                    "type": "string",
                    "description": "KQL query string to execute"
                  }
                },
                "required": [
                  "kql"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    }
  }
}

追加が完了すると、プレイグラウンドのツールエリアに登録したツールが表示されます。
image.png

プロンプト検証(実際に Logic Apps を動かす)

それでは早速 Agent のプレイグラウンドで KQL を実行させる指示を送ってみましょう。
image.png

Log Analytics からのログ結果が返ってきました🎉
image.png

実際に Logic Apps がどう実行されたか確認してみましょう。

Request トリガーの kql プロパティに Agent で指示したクエリ本文が渡されていることが分かります。
image.png

Azure Monitor アクションでは、受け取った KQL を正常に実行していることが分かります。
image.png

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?