ADVERTISEMENT

【Power Automate】HTTP要求が失敗する時のステータスコード確認

【Power Automate】HTTP要求が失敗する時のステータスコード確認
🛡️ 超解決

Power AutomateでHTTPアクションを使用すると、外部APIやWebサービスと連携できます。しかし、フローが失敗したときに表示されるエラーは、単に「失敗」とだけ表示されることが多く、原因がわかりにくいものです。実は、HTTP要求が失敗した場合、Power Automateの実行履歴にはHTTPステータスコードが記録されています。このステータスコードを確認することで、問題の所在を効率的に切り分けられます。本記事では、ステータスコードの確認方法、代表的なコードの意味と対処法、実際の失敗パターン、管理者に確認すべきポイントを詳しく解説します。

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

  • 最初に見る場所: Power Automateのフロー実行履歴を開き、失敗した実行の詳細画面で「出力」タブを確認します。そこにHTTPステータスコードと応答本文が表示されます。
  • 切り分けの軸: ステータスコードが4xx(クライアントエラー)か5xx(サーバーエラー)かで対処が変わります。4xxは呼び出し側の設定やパラメーターに問題がある可能性が高く、5xxは相手先サーバーの一時的な問題や設定不備が考えられます。
  • 注意点: 会社のポリシーによっては、外部APIへのアクセスがプロキシやファイアウォールで制限されている場合があります。ステータスコードが407(プロキシ認証必要)や、タイムアウトが続く場合は、ネットワーク管理者に確認してください。また、HTTPアクションの認証設定を変更する際は、既存のフローへの影響を考慮し、事前にバックアップを取ることを推奨します。

ADVERTISEMENT

1. HTTP要求失敗時のステータスコードを確認する方法

Power AutomateでHTTP要求が失敗した場合、まず実行履歴を確認します。具体的な手順を以下に示します。

  1. Power Automateのポータル(https://make.powerautomate.com)にサインインします。
  2. 左側のメニューから「マイフロー」をクリックし、問題が発生したフローを選択します。
  3. フローの詳細ページで「実行履歴」タブを開きます。ここにすべての実行結果(成功・失敗)が一覧表示されます。
  4. 失敗した実行(ステータスが「失敗」と表示されているもの)をクリックします。実行の詳細画面が開きます。
  5. 画面下部の各アクションのリストから、HTTP要求を送信したアクション(例:「HTTP」や「HTTPとOpenAPI」など)を探します。そのアクションを展開するか、クリックして詳細を表示します。
  6. アクションの詳細の中に「出力」タブがあります。ここにサーバーからの応答情報が表示されます。「statusCode」という項目がHTTPステータスコードです。また、「body」や「headers」も確認できます。
  7. 必要に応じて、応答本文(body)の内容をコピーし、解析に役立てます。JSON形式であれば、そのまま読み取れることが多いです。

この手順でステータスコードを特定したら、次のセクションで説明する表を参考に対処してください。

2. 代表的なステータスコードとその対処法

HTTPステータスコードは大きく分類できます。Power AutomateのHTTP要求でよく遭遇するコードを表にまとめました。各コードの意味と、取るべき対処を簡潔に示します。

ステータスコード 名称 意味 主な対処法
400 Bad Request リクエストの構文が間違っている。パラメーターやヘッダーの形式が不正。 リクエストURL、クエリパラメーター、ボディのJSON形式を確認。スキーマと合致しているか検証する。
401 Unauthorized 認証情報が不足または無効。APIキーやトークンが正しくない。 HTTPアクションの認証設定(ベーシック認証、APIキー、OAuth2など)を確認。トークンの有効期限が切れていないか確認。
403 Forbidden 認証は通ったが、アクセス権限がない。IP制限など。 API側のアクセス権限設定を見直す。Power Automateのコネクタに適切なスコープが付与されているか確認。
404 Not Found リソース(URL)が存在しない。 URLが正しいか確認。エンドポイントのパスが変更されていないか、APIのバージョンが合っているか確認。
429 Too Many Requests レート制限超過。短時間に大量のリクエストを送った。 Power Automateの「再試行ポリシー」を調整するか、フロー内でループや並列処理を制限する。APIの利用制限値を確認する。
500 Internal Server Error サーバー側で問題が発生。一時的なエラーや設定ミスの可能性。 時間をおいて再実行する。API提供元の障害情報を確認。サーバー側のログを確認できる場合は依頼する。
502 Bad Gateway ゲートウェイやプロキシが上位サーバーから不正な応答を受け取った。 ネットワーク経路の問題。社内プロキシの設定を確認。APIプロバイダーのステータスを確認。
503 Service Unavailable サーバーが過負荷やメンテナンスで一時的に利用不可。 フローに再試行ロジックを追加する。Power Automateの「Retry Policy」機能が利用可能なら設定する。
504 Gateway Timeout ゲートウェイがタイムアウト。サーバーからの応答が一定時間内に返ってこなかった。 タイムアウト時間の延長(Power AutomateのHTTPアクションでは最大2分など制限あり)。APIの応答性能を改善してもらう。

3. 失敗パターンと実際の原因例

3.1 認証エラー(401, 403)が多い場合

Power AutomateでHTTP要求を送る際、認証方式はいくつかあります。例えば、Azure AD認証(OAuth2.0)を使用する場合、アクセストークンの有効期限が切れると401エラーが発生します。また、APIキーをヘッダーに指定する方式では、キーの誤記やキー自体の無効化が原因で403エラーになることがあります。このような場合、まず認証情報が正しく設定されているか、トークンが新鮮かどうかを確認します。Power Automateでは、HTTPアクションの設定画面で「認証の追加」から種類を選べますが、接続参照を使うと管理が容易になります。

3.2 リクエスト内容の誤り(400, 404)

400エラーはリクエストボディのJSONが不正な場合に頻発します。例えば、必須項目が欠けていたり、データ型が合わない場合です。404はURLそのものが間違っているか、APIのエンドポイントが変更された場合です。特に、Power Automateの「HTTP」アクションでURLを動的に組み立てている場合、スペースやエンコード漏れに注意します。フロー内で変数を使ってURLを構築するときは、事前にテスト実行して実際の値を確認することをおすすめします。

3.3 レート制限(429)とタイムアウト(504)

429エラーは、Power Automateのフローが短時間に大量のHTTP要求を送った場合に発生します。例えば、リスト内の各アイテムに対してApply to EachループでAPIを呼び出すと、一瞬で多数のリクエストが飛び、制限に引っかかります。対策として、「同時実行の制限」を設定するか、ループ内に「遅延」アクションを挿入してリクエスト間隔を空けます。504エラーは、APIの応答が遅い場合に発生します。Power AutomateのHTTPアクションにはデフォルトでタイムアウトが設定されています(約2分)。長い処理が必要なAPIでは、非同期パターンやバッチ処理を検討する必要があります。

4. 管理者に確認すべきポイント

Power AutomateのHTTP要求が失敗する原因として、社内のネットワーク設定やセキュリティポリシーが関わることがあります。特に以下の点を管理者に確認してください。

  • プロキシ設定: 社内から外部APIへのアクセスがプロキシ経由の場合、Power Automateが適切にプロキシを通るように設定されているか確認します。Power Automateのオンプレミスデータゲートウェイを使っている場合は、ゲートウェイのプロキシ設定も要確認です。
  • ファイアウォールと許可リスト: 外部APIのエンドポイントIPアドレスやドメインが、会社のファイアウォールで許可されているか確認します。また、API側で利用元のIPアドレスを制限している場合、Power Automateの接続元IPが許可されている必要があります(Power AutomateのIPアドレス範囲は公開されています)。
  • 条件付きアクセスと認証ポリシー: Azure ADを使用した認証の場合、条件付きアクセスポリシーがPower Automateの接続をブロックしていないか確認します。多要素認証が必要なAPIでは、Power Automateのサービスプリンシパルに適切なアクセス許可が付与されているかも重要です。
  • APIの利用制限: 外部APIに契約上のレート制限や1日の呼び出し上限がある場合、それを超えていないか管理画面で確認します。また、APIキーの有効期限や利用停止がないかも定期的にチェックします。

管理者に確認する際は、具体的なエラーメッセージやステータスコードを伝えるとスムーズです。

5. よくある質問

Q1. ステータスコードが200(成功)なのにフローが失敗するのはなぜ?

HTTP要求自体は成功していても、その後のアクションでエラーが発生するとフロー全体が失敗になります。例えば、応答のJSONをパースするステップでスキーマ不一致が起きるケースです。実行履歴で各アクションの詳細を確認し、どのアクションで失敗したか特定してください。

Q2. ステータスコードが表示されず、タイムアウトになる場合の対処は?

タイムアウトの場合は応答そのものが返ってこないため、ステータスコードはありません。原因として、APIサーバーの応答が遅い、ネットワークが不安定、ファイアウォールが接続を切断しているなどが考えられます。まずはPower AutomateのHTTPアクションの「タイムアウト」設定を確認し、可能な限り長くしてみます(デフォルトは120秒)。それでもダメなら、API提供元のサポートに問い合わせるか、非同期の呼び出し方式に変更します。

Q3. 社内のAPIにアクセスする場合、特別な設定は必要?

内部APIであっても、オンプレミス環境にある場合は、「オンプレミスデータゲートウェイ」を経由する必要があります。ゲートウェイをインストールし、Power Automateから接続できるように設定します。また、内部APIがWindows認証を使っている場合は、ゲートウェイを通すための資格情報も必要です。

まとめ

Power AutomateでHTTP要求が失敗した場合、最初にステータスコードを確認することが、問題解決への近道です。ステータスコードを手がかりに、認証エラーなのかリクエストの誤りなのか、サーバー側の問題なのかを切り分けられます。また、社内のネットワークポリシーやAPIの利用制限など、環境依存の原因も存在するため、管理者と連携しながら対応を進めてください。再発防止のためには、フローに再試行ポリシーを設定したり、エラーが発生した際の通知を仕込むことも有効です。日頃から実行履歴をチェックし、異常を早期に発見する習慣をつけましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT