ADVERTISEMENT

【Power Automate】HTTPアクションが想定外に繰り返される時の実行履歴から原因を読む方法

【Power Automate】HTTPアクションが想定外に繰り返される時の実行履歴から原因を読む方法
🛡️ 超解決

Power Automateのフローを設計していると、HTTPアクションが意図せず何度も実行されてしまい、想定外のコストや処理負荷が発生することがあります。このような繰り返しは、多くの場合フローのトリガー条件やループ設定、またはアクション内部の応答処理に原因があります。しかし、実行履歴を正しく読めば、どの段階でループが発生しているのかを特定できるようになります。本記事では、HTTPアクションが想定外に繰り返されるケースに焦点を当て、実行履歴から原因を読み解く具体的な手順と判断基準を解説します。

【要点】この記事で確認すること

  • 最初に見る場所: フローの実行履歴一覧から、該当するHTTPアクションの「繰り返し回数」と「出力」タブを確認します。
  • 切り分けの軸: トリガーによる再実行、ループアクション内のHTTP、アクション自体の再試行ポリシーの3軸で整理します。
  • 注意点: 会社PCで管理者が設定した「同時実行数制限」や「再試行ポリシー」を変更する場合は、事前にIT管理者への確認が必要です。

ADVERTISEMENT

1. 想定外の繰り返しが発生する3つのパターン

HTTPアクションが想定外に繰り返される原因は、大きく分けて3つあります。それぞれの特徴を理解しておくことで、実行履歴を見る際の着眼点が明確になります。

1.1 トリガー条件による再実行

フローが「HTTP要求を受信したとき」や「ファイルが作成されたとき」などのトリガーで起動する場合、トリガー条件を満たすイベントが連続して発生するとフロー全体が何度も実行されます。この場合、HTTPアクション単体ではなくフロー全体が繰り返されるため、実行履歴には複数のフロー実行が独立して記録されます。

1.2 ループアクション内のHTTP

「Apply to each」や「Do until」などのループ内にHTTPアクションが配置されていると、ループの各イテレーションでHTTPアクションが実行されます。ループの終了条件が正しく設定されていない場合、無限ループに陥ることもあります。

1.3 アクションの再試行ポリシー

HTTPアクションの設定で「再試行ポリシー」が有効になっていると、エラー応答(HTTP 429や5xxなど)を受け取ったときに自動的に再実行されます。デフォルトの再試行回数や間隔が適切でないと、一見想定外に見える繰り返しが発生します。

パターン 実行履歴の特徴 確認する項目
トリガー再実行 フロー全体の実行が複数記録される トリガー条件、イベント発生頻度
ループ内HTTP 1つのフロー実行内でHTTPアクションが複数回実行(イテレーション数が多い) ループの設定、終了条件、配列の要素数
再試行ポリシー 同じフロー実行内でHTTPアクションが連続して実行(Statusが「再試行」と表示) アクションの設定、応答ステータスコード

2. 実行履歴から原因を読み解く手順

Power Automateの実行履歴画面では、各フロー実行の詳細を確認できます。以下の手順で原因を特定してください。

  1. Power Automateポータル(make.powerautomate.com)にサインインし、左側メニューから「監視」→「実行履歴」を開きます。
  2. 一覧から該当フローを見つけ、最も新しい実行(または問題が発生した実行)をクリックします。
  3. 開いた画面の「アクション」タブで、HTTPアクションの行を探します。アクション名の左側に「再試行」アイコン(回転矢印)が表示されている場合は、再試行ポリシーが作動しています。
  4. HTTPアクションをクリックして展開し、「入力」タブと「出力」タブを確認します。特に「出力」タブの「ステータスコード」と「本文」に注目します。
  5. 同じフロー実行の中で、HTTPアクションが複数回実行されている場合、ループ内に配置されていないか確認します。フローエディタで該当アクションの親を調べます。
  6. フロー実行全体の「開始時刻」と「完了時刻」の差が異常に長い場合、ループが想定以上に回っている可能性があります。

3. 失敗パターンと具体的な原因の見分け方

実際に発生しやすい失敗パターンを4つ紹介します。実行履歴の見え方と合わせて確認してください。

パターンA:トリガーが連続起動している

実行履歴一覧で、数秒間隔で複数のフロー実行が記録されます。各フロー実行内のHTTPアクションの出力を確認しても特にエラーはなく、正常に完了しています。この場合、トリガー元(例えばSharePointリストの変更監視やメール受信)で短時間に複数のイベントが発生していないか確認します。対策として、トリガー設定の「同時実行数制限」を有効にしたり、トリガー条件を絞り込んだりします。

パターンB:Apply to eachで想定外にHTTPがループ

実行履歴を開き、HTTPアクションを展開すると「実行回数」が数百回など巨大な数になっていることがあります。また、出力で「previous attempts」が多数表示される場合もあります。原因として、ループに渡される配列が意図せず巨大である、またはループ内の処理で配列要素が削除されずに無限ループになっているケースが考えられます。対策として、ループの前に「取得したアイテム数」をログ出力して確認します。

パターンC:HTTPアクションの再試行ポリシーが過剰

実行履歴で1つのフロー実行内のHTTPアクションを開くと、「再試行」タブに再試行の回数と間隔が表示されます。デフォルトのポリシーでは最大4回再試行されますが、API側の一時的な負荷により繰り返し429エラーが返ると、4回再試行しても失敗し、さらにフローがトリガーされるといった悪循環が発生します。対策として、再試行ポリシーをオフにするか、最大再試行回数を減らし、間隔を長くします。

パターンD:Do untilの終了条件が満たされない

実行履歴の「アクション」タブで、HTTPアクションの下に「Apply to each」や「Do until」が表示され、そのループが長時間続いている場合は、終了条件を見直します。例えば、HTTPアクションの応答本文から取得した値が期待と異なり、終了条件を満たせないままタイムアウトになることがあります。出力タブで各イテレーションの応答を確認し、条件に使用する値を追跡します。

4. 管理者へ確認する情報と注意点

Power Automateのフロー動作に影響する設定は、ユーザー自身で変更できないものもあります。以下の情報を整理して管理者に相談してください。

  • 環境の同時実行制限: Power Platform管理センターで設定された「同時実行数制限」や「APIレート制限」がフローに影響している可能性があります。管理者に現在の制限値を確認してもらいましょう。
  • コネクタの種類とプラン: 使用しているHTTPアクションが標準コネクタかプレミアムコネクタかで再試行ポリシーの挙動が異なります。ライセンスプランも合わせて確認が必要です。
  • カスタムコネクタの再試行設定: 自組織で作成したカスタムコネクタを経由している場合、コネクタ側に再試行ポリシーが設定されていることがあります。その場合はフロー側の設定よりも優先されることがあります。

5. よくある質問(FAQ)

Q1: 実行履歴でHTTPアクションが「成功」になっているのに何度も実行されているのはなぜですか?
A: 各実行が独立したフロー起動の場合、アクションが成功していてもフロー全体が何度もトリガーされている可能性があります。トリガー条件を確認してください。

Q2: 再試行ポリシーをオフにしましたが、それでも繰り返しが止まりません。
A: ループアクションが原因の可能性があります。または、同じフローが複数のトリガーで起動しているケースも考えられます。実行履歴でフロー実行IDが異なるかどうか確認してください。

Q3: 実行履歴に「制限に達しました」と表示されることがあります。
A: Power Automateのサービス制限(1時間あたりの実行回数など)に達したことを示します。この場合、フローの設計を見直して不要な実行を減らすか、管理者に制限緩和を依頼する必要があります。

6. まとめ

HTTPアクションの想定外の繰り返しは、トリガー、ループ、再試行ポリシーの3つの切り口で原因を特定できます。実行履歴を開き、アクションの実行回数と再試行の有無、応答ステータスコードを確認することで、問題の所在を絞り込めます。また、ループ内のHTTPアクションは特に注意が必要で、終了条件や配列サイズを事前に検証してください。再試行ポリシーの設定変更は、APIの特性に合わせて適切な値に調整しましょう。もし自力で解決できない場合は、本記事で紹介した管理者に伝えるべき情報を整理して相談してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT