Power Apps のフロー呼び出しにおける 120 秒制限を回避する方法

Published: / Last update: / Contributors:
feedback 共有

こんにちは、Power Platform サポートチームの竹嶋です。

本記事では、Power Apps キャンバスアプリから Power Automate のクラウドフローを呼び出す構成でよくお問い合わせをいただく、フローの呼び出しから応答までの「120 秒制限」によってタイムアウトが発生するケースについて、その仕組みと具体的な回避方法をご紹介します。

目次

1. 概要

Power Apps キャンバスアプリから 'フロー名'.Run() でクラウドフローを呼び出し、「Power App またはフローに応答する」アクションで結果を受け取る構成は、データ取得や処理のオフロードなどで広く利用されています。

一方で、この呼び出しには 応答が返るまで 120 秒という時間制限 があります。フロー内の処理が長引いて 120 秒以内に応答を返せない場合、呼び出し元のアプリ側でタイムアウトエラーが発生 します。

ここで重要なのは、これが フロー全体の実行時間ではなく「応答を返すまで」の制限 であるという点です。フロー自体はバックエンドで実行を継続している場合があり、「フローは成功しているのに、アプリ側だけがエラーになる」という状況も起こり得ます。

本記事では、この 120 秒制限の仕組みと、長時間処理が見込まれる場合の回避策をご紹介します。

2. 120 秒制限が発生する仕組み

Power Apps からのフロー呼び出しは、内部的には HTTP の同期通信 で行われます。アプリは「Power App またはフローに応答する」アクションからの応答を待ち受けますが、この同期リクエスト/応答には公開情報のとおり 120 秒の上限が設けられています。

受信要求(インスタント フローのトリガーや HTTP 要求トリガーなど)の制限は 120 秒(2 分)

自動化フロー、スケジュール フロー、インスタント フローの制限 - Power Automate | Microsoft Learn

つまり、フロー内で実行されるデータ取得・外部 API 呼び出し・AI 処理などの合計が 120 秒に近づくと、応答が間に合わずタイムアウトに至ります。

この制限を回避する方法として 「非同期応答」をオンにする 手順をご紹介します。

3. 回避策:非同期応答をオンにする

120 秒制限は HTTP 同期応答の仕様であり、値を変更することはできません。そこで有効なのが、「Power App またはフローに応答する」アクションの 「非同期応答」トグルをオンにする 方法です。

非同期応答をオンにすると、120 秒を超える処理でも、Power Apps はフローからの応答を待機できます。

フロー内の「Power App またはフローに応答する」アクションが実行されるまで、アプリ側の .Run() は待機状態となり、呼び出し後の処理へは進みません。この待機には 1 時間のハードリミットがあり、1 時間以内に応答アクションが実行されなかった場合は、アプリ側でタイムアウトが発生します。

応答アクションの設定トグルを 1 つ変更するだけで 120 秒を超える処理に対応できるため、基本的にはフローのアクションの並びを作り変えずに対応できることも利点になります。

手順 1. フローを作成する(応答を非同期にする)

前提として、「Power Apps がフローを呼び出したとき (V2)」をトリガーに、時間のかかる処理を実行し、最後に「Power App またはフローに応答する」アクションを配置されているとします。

1
2
3
1.[Power Apps がフローを呼び出したとき (V2)]
2.時間のかかるアクション・処理を実行
3.[Power App またはフローに応答する]

「Power App またはフローに応答する」アクションの 設定(…)→「非同期応答」をオン にします。

応答アクションの設定で「非同期応答」をオンにする

手順 2. アプリから呼び出す

アプリ側は通常どおり .Run() で呼び出します。非同期応答をオンにした場合、.Run() はフロー内の応答アクションが実行されるまで待機し、実行後に結果を受け取ります。

Note

非同期応答の詳細については、下記の公開情報をご参照ください。

非同期応答の使用 - Power Automate | Microsoft Learn

まとめ

  • Power Apps からのフロー呼び出しには、応答までに 120 秒(2 分)の制限 があります。これは HTTP 同期応答の仕様であり、値の変更はできません。
  • これは フロー全体の実行時間ではなく「応答を返すまで」の制限 です。
  • 長時間処理が見込まれる場合は、「Power App またはフローに応答する」アクションの 「非同期応答」をオンにする ことで、120 秒の制限を回避できます。
  • 非同期応答をオンにしてもアプリへすぐに応答が返るわけではなく、.Run() はフロー内の応答アクションが実行されるまで待機します。
  • 非同期応答の待機には 1 時間のハードリミットがあり、1 時間以内に応答アクションが実行されない場合はタイムアウトします。

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。