Azure Logic Apps で HTTP Webhook を使用して、自動化されたイベントベースのワークフローを作成して実行する

Azure Logic Apps および組み込みの HTTP Webhook コネクタを使用すると、サービス エンドポイントをサブスクライブし、特定のイベントを待機し、それらのイベントに基づいて実行する自動化されたタスクとワークフローを作成でき、そのエンドポイントを定期的に確認または ポーリング する必要はありません。

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

  • Azure Event Hubからアイテムが到着するのを待ってからロジック アプリの実行をトリガーする。
  • 承認を待ってからワークフローを続行する。

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

Webhook のしくみ

Webhook トリガーは、イベントに基づいており、新しい項目の定期的な確認 (ポーリング) に依存しません。 Webhook トリガーで開始するロジック アプリを保存したり、ロジック アプリを無効から有効に変更したりすると、Webhook トリガーは、指定されたサービス エンドポイントに "コールバック URL" を登録して、そのエンドポイントを "サブスクライブ" します。 その後、このトリガーは、そのサービス エンドポイントが URL を呼び出すまで待ち、その結果、ロジック アプリの実行が開始されます。 要求トリガーと同様に、ロジック アプリは、指定されたイベントが発生するとすぐに起動します。 Webhook トリガーを削除してロジック アプリを保存したり、ロジック アプリを有効から無効に変更したりすると、トリガーはサービスまたはエンドポイントから "サブスクライブを解除" します。

Webhook アクションもイベントに基づいており、指定されたサービス エンドポイントに "コールバック URL" を登録することで、そのエンドポイントを "サブスクライブ" します。 Webhook アクションがロジック アプリのワークフローを一時停止し、サービス エンドポイントが URL を呼び出すまで待った後、ロジック アプリの実行が再開されます。 次のような場合、Webhook アクションはサービス エンドポイントの "サブスクライブを解除" します。

  • Webhook アクションが正常に終了したとき
  • 応答を待機しているときにロジック アプリの実行がキャンセルされた場合
  • ロジック アプリがタイムアウトになる前

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

詳細については、以下のトピックを参照してください。

トランスポート層セキュリティ (TLS) (以前の Secure Sockets Layer (SSL)) や Azure Active Directory Open Authentication (Azure AD OAuth) などの、ロジック アプリへの受信呼び出しの暗号化、セキュリティ、認可については、アクセスとデータのセキュリティ保護 - 要求ベースのトリガーへの受信呼び出しへのアクセスに関するページを参照してください。

前提条件

HTTP Webhook トリガーの追加

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

  1. Azure portal にサインインします。 ロジック アプリ デザイナーで空のロジック アプリを開きます。

  2. デザイナーの検索ボックスに、フィルターとして「http webhook」と入力します。 [トリガー] の一覧から、 [HTTP Webhook] トリガーを選択します。

    HTTP Webhook トリガーを選択する

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

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

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

    HTTP Webhook トリガー パラメーターを入力する

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

    :このプロパティは、listCallbackUrl() 関数の使用をサポートしていません。 ただし、トリガーによって自動的にヘッダー (x-ms-client-tracking-id および x-ms-workflow-operation-name) が含まれ、送信されます。このヘッダーは、ターゲット サービスがサブスクライバーを一意に識別するために使用されます。

  4. その他のトリガー プロパティを追加するには、 [新しいパラメーターの追加] の一覧を開きます。

    トリガー プロパティをさらに追加する

    たとえば、認証を使用する必要がある場合は、サブスクライブ - 認証サブスクライブ解除 - 認証 プロパティを追加します。 HTTP Webhook に使用できる認証の種類の詳細については、送信呼び出しへの認証の追加に関するページを参照してください。

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

  6. 完了したら、忘れずに対象のロジック アプリを保存してください。 デザイナーのツール バーで、 [保存] を選択します。

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

HTTP Webhook アクションの追加

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

  1. Azure portal にサインインします。 ロジック アプリ デザイナーでロジック アプリを開きます。

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

  2. HTTP Webhook アクションを追加するステップで、 [新しいステップ] を選択します。

    ステップの間にアクションを追加するには、ステップ間の矢印の上にポインターを移動します。 表示されるプラス記号 ( + ) を選択してから、 [アクションの追加] を選択します。

  3. デザイナーの検索ボックスに、フィルターとして「http webhook」と入力します。 [アクション] の一覧で、 [HTTP Webhook] アクションを選択します。

    HTTP Webhook アクションを選択する

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

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

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

    HTTP Webhook アクション パラメーターを入力する

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

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

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

    アクション プロパティをさらに追加する

    たとえば、認証を使用する必要がある場合は、サブスクライブ - 認証サブスクライブ解除 - 認証 プロパティを追加します。 HTTP Webhook に使用できる認証の種類の詳細については、送信呼び出しへの認証の追加に関するページを参照してください。

  6. 完了したら、忘れずに対象のロジック アプリを保存してください。 デザイナーのツール バーで、 [保存] を選択します。

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

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

ここでは、以下の情報を返す HTTP Webhook トリガーまたはアクションからの出力の詳細情報を示します。

プロパティ名 Type 説明
headers object 要求のヘッダー
body object 要求の本文の内容を含むオブジェクト
status code INT 要求の状態コード
status code 説明
200 [OK]
202 承認済み
400 正しくない要求
401 権限がありません
403 Forbidden
404 見つかりません
500 内部サーバー エラー。 不明なエラーが発生しました。

コネクタのレファレンス

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

次のステップ