次の方法で共有


Azure Logic Apps で HTTP Webhook を使用してイベントがワークフローを実行するのをサブスクライブして待機する

適用対象: Azure Logic Apps (従量課金 + Standard)

そのエンドポイントを呼び出すサービス エンドポイントまたはアクションを定期的にチェックまたは "ポーリング" するトリガーを使用するのではなく、サービス エンドポイントにサブスクライブし、特定のイベントを待機して、ワークフローで特定のアクションを実行する HTTP Webhook トリガーまたはアクションを使用できます。

Webhook ベースのワークフローの例を次に示します。

  • Azure Event Hubs からイベントが到着するのを待機してからワークフローの実行をトリガーする。
  • 承認を待ってからワークフローを続行する。

このガイドでは、 HTTP Webhook トリガーと HTTP Webhook アクションを使用して、ワークフローがサービス エンドポイントでイベントを受信して応答できるようにする方法について説明します。

Webhook のしくみ

Webhook トリガーは、イベントに基づいており、新しいデータやイベントの定期的な確認 (ポーリング) に依存しません。 Webhook トリガーを空のワークフローに追加してからワークフローを保存した後、または無効にしたロジック アプリ リソースを再度有効にした後、Webhook トリガーは、そのエンドポイントにコールバック URL を登録することによって、指定されたサービス エンドポイントにサブスクライブします。 その後、このトリガーは、そのサービス エンドポイントが URL を呼び出すまで待機し、呼び出しが発生するとワークフローの開始がトリガーされます。 要求トリガーと同様に、webhook トリガーはすぐに起動します。

次のアクションを手動で実行しない限り、Webhook トリガーもサービス エンドポイントにサブスクライブされたままです。

  • トリガーのパラメーター値を変更します。
  • トリガーを削除し、ワークフローを保存します。
  • ロジック アプリ リソースを無効にします。

webhook トリガーと同様に、webhook アクションもイベント ベースです。 Webhook アクションを既存のワークフローに追加してからワークフローを保存した後、または無効にしたロジック アプリ リソースを再度有効にした後、Webhook アクションは、そのエンドポイントにコールバック URL を登録することによって、指定されたサービス エンドポイントにサブスクライブします。 ワークフローが実行されると、Webhook アクションがワークフローを一時停止し、サービス エンドポイントが URL を呼び出すまで待機した後、ワークフローの実行が再開されます。 Webhook アクションは、次の条件が発生すると、サービス エンドポイントからサブスクライブ解除します。

  • Webhook アクションが正常に終了した。
  • 応答を待機しているときにワークフローの実行がキャンセルされた。
  • ワークフロー実行がタイムアウトする前。
  • Webhook トリガーによって入力として使用される Webhook アクション パラメーター値を変更します。

たとえば、Office 365 Outlook コネクタの [承認メールの送信] アクションは、このパターンに従う Webhook アクションの例です。 Webhook アクションを使用することで、このパターンをあらゆるサービスに適用できます。

詳しくは、次のドキュメントをご覧ください。

トランスポート層セキュリティ (TLS)Microsoft Entra ID オープン認証など、ロジック アプリへの受信呼び出しの暗号化、セキュリティ、承認の詳細については、「要求ベースのトリガーへの受信呼び出しのアクセス」を参照してください。

コネクタに関するテクニカル リファレンス

トリガーとアクションのパラメーターの詳細については、HTTP Webhook のパラメーターに関するページを参照してください。

前提条件

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • 必要に応じて、ワークフロー内の Webhook トリガーまたはワークフロー内の Webhook アクションのためのサブスクライブおよび解除パターンをサポートする、既にデプロイされているエンドポイントまたはAPIのURL。

  • ターゲット エンドポイントで特定のイベントを待機する Standard または従量課金ロジック アプリ ワークフロー。

    HTTP Webhook トリガーから開始するには、空のワークフローを含むロジック アプリを作成します。

    HTTP Webhook アクションを使用するには、任意のトリガーでワークフローを開始します。 この例では、最初の手順として HTTP トリガーを使用します。

HTTP Webhook トリガーの追加

この組み込みトリガーは、ターゲット サービスでサブスクライブ エンドポイントを呼び出し、そのコールバック URL をターゲット サービスに登録します。 その後、ワークフローは、ターゲット サービスがコールバック URL に HTTP POST 要求を送信するのを待ちます。 このイベントが発生すると、トリガーが起動され、要求内のすべてのデータがワークフローに渡されます。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバー メニューの [ ワークフロー] で [ ワークフロー] を選択し、空のワークフローを選択します。

  3. ワークフロー サイドバー メニューの [ ツール] で、デザイナーを選択してワークフローを開きます。

  4. 一般的な手順に従ってトリガーを追加することで、 HTTP Webhookトリガーをワークフローに追加します

    この例では、このステップの名前がよりわかりやすくなるように、トリガー名を HTTP Webhook trigger に変更します。 また、この例では後で HTTP Webhook アクションを追加します。どちらの名前も一意である必要があります。

  5. サブスクライブおよびサブスクライブ解除の呼び出しに使用する HTTP Webhook トリガー パラメーターの値を指定します。

    プロパティ 必須 説明
    サブスクライブ メソッド はい ターゲット エンドポイントをサブスクライブするときに使用するメソッド
    購読 URI はい ターゲット エンドポイントにサブスクライブするために使用する URL
    本文をサブスクライブする いいえ サブスクライブ要求に含めるメッセージ本文。 この例には、ロジック アプリであるサブスクライバーを一意に識別するコールバック URL が含まれており、@listCallbackUrl() 式を使用してロジック アプリのコールバック URL を取得しています。
    配信停止の本文 いいえ サブスクライブ解除の要求に含めるオプションのメッセージ本文

    注意: このプロパティは、listCallbackUrl() 関数の使用をサポートしていません。 ただし、トリガーによって自動的にヘッダー (x-ms-client-tracking-id および x-ms-workflow-operation-name) が含まれ、送信されます。このヘッダーは、ターゲット サービスがサブスクライバーを一意に識別するために使用されます。
    「Unsubscribe」メソッド いいえ ターゲット エンドポイントからサブスクライブ解除するときに使用するメソッド
    登録解除 URI いいえ ターゲット エンドポイントからサブスクライブ解除するために使用する URL

    Unsubscribe メソッドプロパティと Unsubscribe URI プロパティの場合は、[詳細パラメーター] リストを開いてアクションに追加します。

    たとえば、次のトリガーには、サブスクライブおよびサブスクライブ解除の操作を実行するときに使用するメソッド、URI、メッセージ本文が含まれています。

    HTTP Webhook トリガー パラメーターを含む Standard ワークフローを示すスクリーンショット。

    認証を使用する必要がある場合は、 Subscribe Authentication プロパティと Unsubscribe Authentication プロパティを追加できます。 HTTP Webhook で使用できる認証の種類の詳細については、「送信呼び出しに認証を追加する」を参照してください。

  6. トリガーが起動したときに実行されるアクションを使用して、ワークフローを引き続き構築します。

  7. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、[保存] を選択します。

ワークフローを保存すると、ターゲット サービスでサブスクライブ エンドポイントが呼び出され、コールバック URL が登録されます。 その後、ワークフローは、ターゲット サービスがコールバック URL に HTTP POST 要求を送信するのを待ちます。 このイベントが発生すると、トリガーが起動され、要求内のすべてのデータがワークフローに渡されます。 この操作が正常に完了すると、トリガーはエンドポイントからサブスクライブ解除され、ワークフローでは次のアクションが続行されます。

HTTP Webhook アクションの追加

この組み込みアクションは、ターゲット サービスでサブスクライブ エンドポイントを呼び出し、そのコールバック URL をターゲット サービスに登録します。 その後、ワークフローは一時停止し、ターゲット サービスがコールバック URL に HTTP POST 要求を送信するのを待ちます。 このイベントが発生すると、アクションは要求内のすべてのデータをワークフローに渡します。 操作が正常に完了すると、アクションはエンドポイントからサブスクライブ解除され、ワークフローでは次のアクションが続行されます。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバー メニューの [ ワークフロー] で [ ワークフロー] を選択し、ワークフローを選択します。

  3. ワークフロー サイドバー メニューの [ ツール] で、デザイナーを選択してワークフローを開きます。

    この例では、最初のステップとして HTTP Webhook トリガーを使用しています。

  4. アクションを追加する一般的な手順に従って、 HTTP Webhookアクションをワークフローに追加します

    この例では、このステップの名前がわかりやすくなるように、アクション名を HTTP Webhook action に変更します。

  5. サブスクライブおよびサブスクライブ解除の呼び出しに使用する HTTP Webhook トリガー パラメーターに似た HTTP Webhook アクション パラメーターの値を指定します。

    プロパティ 必須 説明
    メソッドのサブスクライブ はい ターゲット エンドポイントをサブスクライブするときに使用するメソッド
    購読 URI はい ターゲット エンドポイントにサブスクライブするために使用する URL
    購読本体 いいえ サブスクライブ要求に含めるメッセージ本文。 この例には、ロジック アプリであるサブスクライバーを一意に識別するコールバック URL が含まれており、@listCallbackUrl() 式を使用してロジック アプリのコールバック URL を取得しています。
    サブスクライブ解除の本文 いいえ サブスクライブ解除の要求に含めるオプションのメッセージ本文

    注意: このプロパティは、listCallbackUrl() 関数の使用をサポートしていません。 ただし、アクションによってヘッダー (x-ms-client-tracking-id および x-ms-workflow-operation-name) が自動的に送信されます。このヘッダーは、ターゲット サービスがサブスクライバーを一意に識別するために使用されます。
    サブスクライブ解除のメソッド いいえ ターゲット エンドポイントからサブスクライブ解除するときに使用するメソッド
    登録解除 URI いいえ ターゲット エンドポイントからサブスクライブ解除するために使用する URL

    Unsubscribe メソッドプロパティと Unsubscribe URI プロパティの場合は、[詳細パラメーター] リストを開いてアクションに追加します。

    たとえば、次のアクションには、サブスクライブおよびサブスクライブ解除の操作を実行するときに使用するメソッド、URI、メッセージ本文が含まれています。

    HTTP Webhook アクション パラメーターを含む Standard ワークフローを示すスクリーンショット。

  6. その他のアクション プロパティを追加するには、[高度なパラメーター] の一覧を開きます。

    たとえば、認証を使用する必要がある場合は、 Subscribe Authentication プロパティと Unsubscribe Authentication プロパティを追加できます。 HTTP Webhook で使用できる認証の種類の詳細については、「送信呼び出しに認証を追加する」を参照してください。

  7. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、[保存] を選択します。

このアクションが実行されると、ワークフローはターゲット サービスでサブスクライブ エンドポイントを呼び出し、コールバック URL を登録します。 その後、ワークフローは一時停止し、ターゲット サービスがコールバック URL に HTTP POST 要求を送信するのを待ちます。 このイベントが発生すると、アクションは要求内のすべてのデータをワークフローに渡します。 操作が正常に完了すると、アクションはエンドポイントからサブスクライブ解除され、ワークフローでは次のアクションが続行されます。

トリガーとアクションの出力

HTTP Webhook トリガーまたはアクションからの出力の詳細については、次の情報を返します。

プロパティ名 タイプ 説明
headers オブジェクト 要求のヘッダー
body オブジェクト 要求の本文の内容を含むオブジェクト
状態コード 整数 (int) 要求の状態コード
status code 説明
200 [OK]
202 受け入れられた
400 要求が正しくありません
401 権限がありません
403 Forbidden
404 見つかりません
500 内部サーバー エラー。 不明なエラーが発生しました。

セカンダリ アクセス キーを使用してコールバック URL を生成する

ロジック アプリ ワークフローには、プライマリとセカンダリの 2 つのアクセス キーがあります。 既定では、Azure Logic Apps は主キーを使用して HTTP webhook トリガーのコールバック URL を生成します。

代わりに、コールバック URL の生成にセカンダリ キーを使用するには、次の手順に従います。

  1. ワークフロー デザイナーから、コード ビューに切り替えます。

  2. HttpWebhook トリガー定義で、accessKeyType パラメーターを見つけます。

  3. パラメーター値として単語 Secondary を指定します。

  4. 忘れずに変更を保存してください。

次の例は、 accessKeyType パラメーターを Secondary に設定した webhook トリガー定義を示しています。

{
  "type": "HttpWebhook",
  "inputs": {
    "subscribe": {
      "method": "POST",
      "uri": "<subscription-URL>",
      "body": "@listCallbackUrl()"
    },
    "accessKeyType": "Secondary"
  },
  "runAfter": {}
}