Microsoft 365

Power Automate フローの実行が遅延する原因を特定できるか(できない)

サービスである機能や仕様が「存在する/できる」ことを確認するのは比較的容易です。しかし「ない/できない」を確定させるのは難しい。公式ドキュメント等で明示されていない限り、どんなに調査しても「自分が知らない/見落としているだけなのでは?」という疑いがゼロになりません。

フローの実行に極端に時間がかかる

Power Automate のフローを実行した際、大きな遅延が発生するケースがあります。設計数が多いフローを、何らかの理由で多重実行したときなど、通常なら数秒で完了するフローが、完了までに数時間かかったりもします。

20220209image01

ちなみに、上記の結果になったフローはこんな設計です。SharePoint Online のライブラリにファイルがアップロードされたら起動し、Do until で変数設定を50回ほど行ったら、ファイルをチェックアウトして終了する。これを発行した後、350ファイルほど一括アップロードしました(あくまで検証ですので…)。

20220209image02

サービスリクエストで聞いてみた

この遅延そのものは、不思議ではありません。Power Automate に存在する種々の制限に抵触したため「低速実行モード」に切り替えられた結果だと考えられます。しかし、問題は「何の制限に抵触したのか?」です。それが分からないことには、設計や運用を改善しようにも出来ない(難しい)ためです。

この点について、SR(サービスリクエスト)で確認したところ、次の回答を頂きました。

主な要因として、フロー内にて使用しております SharePoint コネクタにて設定されております、調整制限に抵触した場合や、Power Automate にて設定されております制限事項に抵触したことにより発生したと推察いたします。
事象発生時に API 要求制限を含む各種制限に抵触したかを確認する方法について、現時点において確認する方法はございません。

やっぱりそうなんですねー。
予想はしていましたが。

なお、Power Automate の各種制限そのものについてはこちらに公式情報があります。

自動化フロー、スケジュールされたフロー、インスタント フローの制限事項
https://docs.microsoft.com/ja-jp/power-automate/limits-and-config
低速実行フローのトラブルシューティング
https://support.microsoft.com/ja-jp/topic/2a51dcd6-0b21-33da-5ce8-1e908b1540ef
Power Automate ライセンスの種類
https://docs.microsoft.com/ja-jp/power-platform/admin/power-automate-licensing/types

実際のフロー設計と運用では、上の「低速実行フローのトラブルシューティング」の「解決方法」に記述されている事柄をできる限り留意してフローを開発する、くらいしかできなさそうです。

経験的には Do until と For each が鬼門。この辺りのコントロールはそもそも動作が遅いですし。JSON を駆使してループに頼らず必要な情報を抜く、等でできるだけ代用したほうが良さそうですね。

それでは、良いお仕事を。