こんにちは!Azure Integration サポート チームの山田です。
複数の Logic Apps を実行する際に、「トリガーのコンカレンシー制御」がございますが、ここではもう少し汎用的に、既に実行中の Logic Apps の状況を確認して制御する方法についてご紹介いたします。
こんな方におすすめです
トリガーのコンカレンシー制御以外の手段で、他の実行中の Logic Apps の状況を任意にフィルターして制御する方法を実装されたい方。
目次
- 実行一覧 API (従量課金版 Logic Apps)
- 実行一覧 API (Standard 版 Logic Apps)
- Logic Apps から HTTP コネクタによる API の実行
- 状況判定
- 関連ドキュメント
- まとめ
実行一覧 API (従量課金版 Logic Apps)
ワークフローの実行の一覧を取得します。
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs?api-version=2019-05-01&$filter={$filter}
これにより、Filter で例として、実行中のフローを絞り込むことができます。実行中のものを絞り込むフィルタは status eq 'running' などとなります。エンコードを掛けますと以下のような URL になります。
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs?api-version=2019-05-01&$filter=status%20eq%20%27running%27
実行結果:

実行一覧 API (Standard 版 Logic Apps)
Workflow Runs - List - REST API (Azure App Service)
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{logicappname}/hostruntime/runtime/webhooks/workflow/api/management/workflows/{workflowName}/runs?api-version=2025-03-01&$filter={$filter}
従量課金版同様、ワークフローの実行の一覧を取得します。
Logic Apps から HTTP コネクタによる API の実行
上の API を、Logic Apps の、HTTP コネクタから実行いただけます。ここでは認証にマネージド ID を利用しております。

実行結果:

この方法で当該の API を使用する際は Logic Apps のマネージド ID に対してロールを割り当てます。
従量課金版の場合: 以下のロールを割り当てます。
Standard 版の場合: 以下のロールを割り当てます (プレビュー)。
または以下 2 つのロールを割り当てます。詳細は Logic Apps (Standard) を作成するために必要な最小権限 | Japan Azure Integration Support Blog をご参考いただけます。
- Web および Mobile 用の Azure 組み込みロール # Web Plan Contributor
- Web および Mobile 用の Azure 組み込みロール # Website Contributor
状況判定
この HTTP の結果に対して、Logic Apps 内で関数を用いますと以下のような判定が可能となります。
Length(body('HTTP')?['value'])
Length
式関数のリファレンス ガイド - Azure Logic Apps # Length
配列の項目の数を返します。
実行結果:
この length 関数を用いて、実行中のジョブ一覧「body(‘HTTP’)?[‘value’]」の要素数をカウントします。
- カウントを条件ステートメントで判定する。
- 実行中のジョブが 1 以上である場合は終了アクションでジョブを終了する。
- 実行中のジョブがない場合は想定の処理に移行する。
例として、上のような制御が可能となります。

以上となります。
関連ドキュメント
ほか、トリガーに設定可能なコンカレンシー制御と最大実行待機数に関する情報については、以下の記事がございます。
まとめ
本記事では、複数の Logic Apps を実行する際に、汎用的に、既に実行中の Logic Apps の状況を確認して制御する方法についてご紹介いたしました。本記事が皆様のお役に立ちましたら幸いです。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。