Azure Logic Apps から HTTP または HTTPS でサービス エンドポイントを呼び出すCall service endpoints over HTTP or HTTPS from Azure Logic Apps

Azure Logic Apps および組み込みの HTTP トリガーまたはアクションを使用すると、HTTP または HTTPS 経由で他のサービスやシステム上のエンドポイントに送信要求を送信できる自動化されたタスクとワークフローを作成できます。With Azure Logic Apps and the built-in HTTP trigger or action, you can create automated tasks and workflows that can send outbound requests to endpoints on other services and systems over HTTP or HTTPS. 代わりに受信 HTTPS 呼び出しを受信してそれに応答するには、組み込みの Request トリガーと Response アクションを使用します。To receive and respond to inbound HTTPS calls instead, use the built-in Request trigger and Response action.

たとえば、Web サイトのサービス エンドポイントは、そのエンドポイントを特定のスケジュールで確認することによって監視できます。For example, you can monitor a service endpoint for your website by checking that endpoint on a specific schedule. Web サイトの停止など、そのエンドポイントで指定されたイベントが発生すると、そのイベントによってロジック アプリのワークフローがトリガーされ、そのワークフロー内のアクションが実行されます。When the specified event happens at that endpoint, such as your website going down, the event triggers your logic app's workflow and runs the actions in that workflow.

  • 定期的なスケジュールでエンドポイントを調べる、つまり "ポーリング" するには、ワークフローの最初のステップとして HTTP トリガーを追加します。To check or poll an endpoint on a recurring schedule, add the HTTP trigger as the first step in your workflow. トリガーによるエンドポイントの調査ごとに、トリガーからそのエンドポイントに対して、呼び出しまたは要求の送信が行われます。Each time that the trigger checks the endpoint, the trigger calls or sends a request to the endpoint. エンドポイントの応答によって、ロジック アプリのワークフローが実行されるかどうかが決定します。The endpoint's response determines whether your logic app's workflow runs. エンドポイントの応答からの任意のコンテンツが、トリガーによってロジック アプリのアクションに渡されます。The trigger passes any content from the endpoint's response to the actions in your logic app.

  • ワークフロー内のどこか他の場所からエンドポイントを呼び出すには、HTTP アクションを追加しますTo call an endpoint from anywhere else in your workflow, add the HTTP action. エンドポイントの応答によって、ワークフローの以降のアクションの実行方法が決まります。The endpoint's response determines how your workflow's remaining actions run.

この記事では、ロジック アプリが他のサービスやシステムに送信呼び出しを送信できるように HTTP トリガーと HTTP アクションを使用する方法について説明します。This article shows how to use the HTTP trigger and HTTP action so that your logic app can send outbound calls to other services and systems.

トランスポート層セキュリティ (TLS) (以前の Secure Sockets Layer (SSL))、自己署名証明書、Azure Active Directory Open Authentication (Azure AD OAuth) などの、ロジック アプリからの送信呼び出しの暗号化、セキュリティ、承認については、アクセスとデータのセキュリティ保護 - 他のサービスやシステムへの送信呼び出しへのアクセスに関するページを参照してください。For information about encryption, security, and authorization for outbound calls from your logic app, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), self-signed certificates, or Azure Active Directory Open Authentication (Azure AD OAuth), see Secure access and data - Access for outbound calls to other services and systems.

前提条件Prerequisites

  • Azure アカウントとサブスクリプション。An Azure account and subscription. Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。If you don't have an Azure subscription, sign up for a free Azure account.

  • 呼び出すターゲット エンドポイントの URLThe URL for the target endpoint that you want to call

  • ロジック アプリの作成方法に関する基本的な知識。Basic knowledge about how to create logic apps. ロジック アプリを初めて使用する場合は、「Azure Logic Apps とは」を参照してください。If you're new to logic apps, review What is Azure Logic Apps?

  • ターゲット エンドポイントの呼び出し元となるロジック アプリ。The logic app from where you want to call the target endpoint. HTTP トリガーで開始するには、空のロジック アプリを作成しますTo start with the HTTP trigger, create a blank logic app. HTTP アクションを使用するには、任意のトリガーで対象のロジック アプリを起動します。To use the HTTP action, start your logic app with any trigger that you want. この例では、最初のステップとして HTTP トリガーを使用します。This example uses the HTTP trigger as the first step.

HTTP トリガーの追加Add an HTTP trigger

この組み込みトリガーは、エンドポイントに指定された URL に対して HTTP 呼び出しを実行し、応答を返します。This built-in trigger makes an HTTP call to the specified URL for an endpoint and returns a response.

  1. Azure portal にサインインします。Sign in to the Azure portal. ロジック アプリ デザイナーで空のロジック アプリを開きます。Open your blank logic app in Logic App Designer.

  2. デザイナーの検索ボックスで、 [組み込み] を選択します。Under the designer's search box, select Built-in. 検索ボックスに、フィルターとして「http」と入力します。In the search box, enter http as your filter. [トリガー] の一覧から、 [HTTP] トリガーを選択します。From the Triggers list, select the HTTP trigger.

    HTTP トリガーを選択する

    この例では、トリガー名を "HTTP trigger" に変更して、このステップにわかりやすい名前を付けています。This example renames the trigger to "HTTP trigger" so that the step has a more descriptive name. また、この例では後で HTTP アクションを追加します。どちらの名前も一意である必要があります。Also, the example later adds an HTTP action, and both names must be unique.

  3. ターゲット エンドポイントへの呼び出しに含める HTTP トリガー パラメーターの値を指定します。Provide the values for the HTTP trigger parameters that you want to include in the call to the target endpoint. トリガーでターゲット エンドポイントを確認する頻度を設定します。Set up the recurrence for how often you want the trigger to check the target endpoint.

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

    [なし] 以外の認証の種類を選択した場合、認証設定は、選択に基づいて変化します。If you select an authentication type other than None, the authentication settings differ based on your selection. HTTP に使用できる認証の種類の詳細については、以下のトピックを参照してください。For more information about authentication types available for HTTP, see these topics:

  4. その他の使用可能なパラメーターを追加するには、 [新しいパラメーターの追加] リストを開き、必要なパラメーターを選択します。To add other available parameters, open the Add new parameter list, and select the parameters that you want.

  5. トリガーが起動したときに実行されるアクションを使用して、ロジック アプリのワークフローを引き続き構築します。Continue building your logic app's workflow with actions that run when the trigger fires.

  6. 完了したら、忘れずに対象のロジック アプリを保存してください。When you're done, remember to save your logic app. デザイナーのツール バーで、 [保存] を選択します。On the designer toolbar, select Save.

HTTP アクションの追加Add an HTTP action

この組み込みアクションは、エンドポイントに指定された URL に対して HTTP 呼び出しを実行し、応答を返します。This built-in action makes an HTTP call to the specified URL for an endpoint and returns a response.

  1. Azure portal にサインインします。Sign in to the Azure portal. ロジック アプリ デザイナーでロジック アプリを開きます。Open your logic app in Logic App Designer.

    この例では、最初のステップとして HTTP トリガーを使用します。This example uses the HTTP trigger as the first step.

  2. HTTP アクションを追加するステップで、 [新しいステップ] を選択します。Under the step where you want to add the HTTP action, select New step.

    ステップの間にアクションを追加するには、ステップ間の矢印の上にポインターを移動します。To add an action between steps, move your pointer over the arrow between steps. 表示されるプラス記号 ( + ) を選択してから、 [アクションの追加] を選択します。Select the plus sign (+) that appears, and then select Add an action.

  3. [アクションを選択してください][Built-in](組み込み) を選択します。Under Choose an action, select Built-in. 検索ボックスに、フィルターとして「http」と入力します。In the search box, enter http as your filter. [アクション] の一覧で、 [HTTP] アクションを選択します。From the Actions list, select the HTTP action.

    HTTP アクションを選択する

    この例では、アクション名を "HTTP action" に変更して、このステップにわかりやすい名前を付けています。This example renames the action to "HTTP action" so that the step has a more descriptive name.

  4. ターゲット エンドポイントへの呼び出しに含める HTTP アクション パラメーターの値を指定します。Provide the values for the HTTP action parameters that you want to include in the call to the target endpoint.

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

    [なし] 以外の認証の種類を選択した場合、認証設定は、選択に基づいて変化します。If you select an authentication type other than None, the authentication settings differ based on your selection. HTTP に使用できる認証の種類の詳細については、以下のトピックを参照してください。For more information about authentication types available for HTTP, see these topics:

  5. その他の使用可能なパラメーターを追加するには、 [新しいパラメーターの追加] リストを開き、必要なパラメーターを選択します。To add other available parameters, open the Add new parameter list, and select the parameters that you want.

  6. 完了したら、忘れずに対象のロジック アプリを保存してください。When you're done, remember to save your logic app. デザイナーのツール バーで、 [保存] を選択します。On the designer toolbar, select Save.

トリガーとアクションの出力Trigger and action outputs

ここでは、以下の情報を返す HTTP トリガーまたはアクションからの出力の詳細情報を示します。Here is more information about the outputs from an HTTP trigger or action, which returns this information:

プロパティProperty TypeType 説明Description
headers JSON オブジェクトJSON object 要求のヘッダーThe headers from the request
body JSON オブジェクトJSON object 要求の本文の内容を含むオブジェクトThe object with the body content from the request
status code IntegerInteger 要求の状態コードThe status code from the request
status codeStatus code 説明Description
200200 [OK]OK
202202 承認済みAccepted
400400 正しくない要求Bad request
401401 権限がありませんUnauthorized
403403 ForbiddenForbidden
404404 見つかりませんNot Found
500500 内部サーバー エラー。Internal server error. 不明なエラーが発生しました。Unknown error occurred.

マルチパート/フォームデータ型のコンテンツContent with multipart/form-data type

HTTP 要求に multipart/form-data 型を含むコンテンツを処理する目的で、このフォーマットを使用することで、$content-type 属性と $multipart 属性を含む JSON オブジェクトを HTTP 要求の本文に追加できます。To handle content that has multipart/form-data type in HTTP requests, you can add a JSON object that includes the $content-type and $multipart attributes to the HTTP request's body by using this format.

"body": {
   "$content-type": "multipart/form-data",
   "$multipart": [
      {
         "body": "<output-from-trigger-or-previous-action>",
         "headers": {
            "Content-Disposition": "form-data; name=file; filename=<file-name>"
         }
      }
   ]
}

たとえば、Excel ファイルの HTTP POST 要求を Web サイトに送信するロジック アプリがあるとします。このとき、multipart/form-data 型をサポートする、そのサイトの API を使用します。For example, suppose you have a logic app that sends an HTTP POST request for an Excel file to a website by using that site's API, which supports the multipart/form-data type. このアクションは次のようになります。Here's how this action might look:

マルチパート フォーム データ

基礎ワークフロー定義で HTTP アクションの JSON 定義を示す同じ例は次のようになります。Here is the same example that shows the HTTP action's JSON definition in the underlying workflow definition:

"HTTP_action": {
   "inputs": {
      "body": {
         "$content-type": "multipart/form-data",
         "$multipart": [
            {
               "body": "@trigger()",
               "headers": {
                  "Content-Disposition": "form-data; name=file; filename=myExcelFile.xlsx"
               }
            }
         ]
      },
      "method": "POST",
      "uri": "https://finance.contoso.com"
   },
   "runAfter": {},
   "type": "Http"
}

Content with application/x-www-form-urlencoded typeContent with application/x-www-form-urlencoded type

HTTP 要求の本文に form-urlencoded データを提供するには、データのコンテンツの種類が application/x-www-form-urlencoded であることを指定する必要があります。To provide form-urlencoded data in the body for an HTTP request, you have to specify that the data has the application/x-www-form-urlencoded content type. HTTP トリガーまたはアクションで、content-type ヘッダーを追加します。In the HTTP trigger or action, add the content-type header. ヘッダー値を application/x-www-form-urlencoded に設定します。Set the header value to application/x-www-form-urlencoded.

たとえば、HTTP POST 要求を Web サイトに送信するロジック アプリがあり、application/x-www-form-urlencoded 型をサポートするとします。For example, suppose you have a logic app that sends an HTTP POST request to a website, which supports the application/x-www-form-urlencoded type. このアクションは次のようになります。Here's how this action might look:

'content-type' ヘッダーが 'application/x-www-form-urlencoded' に設定されている HTTP 要求を示すスクリーンショット

非同期の要求 - 応答の動作Asynchronous request-response behavior

既定では、Azure Logic Apps での HTTP ベースのすべてのアクションは、標準的な非同期操作パターンに従います。By default, all HTTP-based actions in Azure Logic Apps follow the standard asynchronous operation pattern. このパターンでは、HTTP アクションがエンドポイント、サービス、システム、または API に対して要求を呼び出す、または送信した後、受信側が直ちに "202 ACCEPTED" 応答を返すよう規定されます。This pattern specifies that after an HTTP action calls or sends a request to an endpoint, service, system, or API, the receiver immediately returns a "202 ACCEPTED" response. このコードは、受信側が要求を受け入れたが、処理が完了していないことを確認します。This code confirms that the receiver accepted the request but hasn't finished processing. 応答には、受信側が処理を停止して "200 OK" 成功応答またはその他の 202 以外の応答が返されるまで、呼び出し元が非同期要求の状態をポーリングまたは確認するために使用できる URL およびリフレッシュ ID を指定する location ヘッダーを含めることができます。The response can include a location header that specifies the URL and a refresh ID that the caller can use to poll or check the status for the asynchronous request until the receiver stops processing and returns a "200 OK" success response or other non-202 response. ただし、呼び出し元は要求の処理が完了するまで待機する必要はなく、次のアクションの実行を継続できます。However, the caller doesn't have to wait for the request to finish processing and can continue to run the next action. 詳細については、マイクロサービスの非同期統合によるマイクロサービスの自律性の強制に関するページを参照してください。For more information, see Asynchronous microservice integration enforces microservice autonomy.

  • ロジック アプリ デザイナーでは、HTTP アクション (トリガーではありません) に非同期パターン設定があります。これは既定で有効になっています。In the Logic App Designer, the HTTP action, but not trigger, has an Asynchronous Pattern setting, which is enabled by default. この設定では、呼び出し元は処理が終了するのを待たずに次のアクションに進むことができますが、処理が停止するまで状態のチェックは継続されます。This setting specifies that the caller doesn't wait for processing to finish and can move on to the next action but continues checking the status until processing stops. 無効にした場合、この設定では次のアクションに進む前に、呼び出し元が処理の終了を待機するように指定されます。If disabled, this setting specifies that the caller waits for processing to finish before moving on to the next action.

    この設定を見つけるには、次の手順を実行します。To find this setting, follow these steps:

    1. HTTP アクションのタイトル バーで、省略記号 ( ... ) ボタンを選択します。これにより、アクションの設定が開きます。On the HTTP action's title bar, select the ellipses (...) button, which opens the action's settings.

    2. [非同期パターン] 設定を探します。Find the Asynchronous Pattern setting.

      "非同期パターン" 設定

  • HTTP アクションの基になる JavaScript Object Notation (JSON) 定義では、暗黙的に非同期操作パターンに従います。The HTTP action's underlying JavaScript Object Notation (JSON) definition implicitly follows the asynchronous operation pattern.

非同期操作の無効化Disable asynchronous operations

場合によっては、特定のシナリオで HTTP アクションの非同期動作を無効化する必要がある場合があります。たとえば、次のような場合です。Sometimes, you might want to the HTTP action's asynchronous behavior in specific scenarios, for example, when you want to:

非同期パターン設定をオフにするTurn off Asynchronous Pattern setting

  1. ロジック アプリ デザイナーの HTTP アクションのタイトル バーで、省略記号 ( ... ) ボタンを選択します。これにより、アクションの設定が開きます。In the Logic App Designer, on the HTTP action's title bar, select the ellipses (...) button, which opens the action's settings.

  2. [非同期パターン] 設定を探し、有効になっている場合は設定を [オフ] にし、 [完了] を選択します。Find the Asynchronous Pattern setting, turn the setting to Off if enabled, and select Done.

    "非同期パターン" 設定を無効にする

アクションの JSON 定義で非同期パターンを無効にするDisable asynchronous pattern in action's JSON definition

HTTP アクションの基になる JSON 定義で、アクションが同期操作パターンに従うように、アクションの定義に "DisableAsyncPattern" 操作オプションを追加しますIn the HTTP action's underlying JSON definition, add the "DisableAsyncPattern" operation option to the action's definition so that the action follows the synchronous operation pattern instead. 詳細については、「アクションを同期的に実行する」も参照してください。For more information, see also Run actions in a synchronous operation pattern.

長時間実行されるタスクで HTTP タイムアウトを回避するAvoid HTTP timeouts for long-running tasks

HTTP 要求にはタイムアウト制限があります。HTTP requests have a timeout limit. この制限によってタイムアウトする、実行時間の長い HTTP アクションがある場合、次のオプションがあります。If you have a long-running HTTP action that times out due to this limit, you have these options:

  • アクションが継続的にポーリングしたり、要求の状態を確認したりしないように、HTTP アクションの非同期操作パターンを無効にしますDisable the HTTP action's asynchronous operation pattern so that the action doesn't continually poll or check the request's status. アクションは代わりに、要求が処理を終了した後、受信側が状態と結果を応答するまで待機します。Instead, the action waits for the receiver to respond with the status and results after the request finishes processing.

  • HTTP アクションを HTTP Webhook アクションに置き換えます。これにより、要求が処理を完了した後、受信側が状態と結果を応答するまで待機します。Replace the HTTP action with the HTTP Webhook action, which waits for the receiver to respond with the status and results after the request finishes processing.

場所ヘッダーの確認を無効にするDisable checking location headers

一部のエンドポイント、サービス、システム、または API は、location ヘッダーのない "202 ACCEPTED" 応答を返します。Some endpoints, services, systems, or APIs return a "202 ACCEPTED" response that don't have a location header. location ヘッダーが存在しない場合に、HTTP アクションが要求の状態を継続的に確認しないようにするには、次のオプションを使用します。To avoid having an HTTP action continually check the request status when the location header doesn't exist, you can have these options:

  • アクションが継続的にポーリングしたり、要求の状態を確認したりしないように、HTTP アクションの非同期操作パターンを無効にしますDisable the HTTP action's asynchronous operation pattern so that the action doesn't continually poll or check the request's status. アクションは代わりに、要求が処理を終了した後、受信側が状態と結果を応答するまで待機します。Instead, the action waits for the receiver to respond with the status and results after the request finishes processing.

  • HTTP アクションを HTTP Webhook アクションに置き換えます。これにより、要求が処理を完了した後、受信側が状態と結果を応答するまで待機します。Replace the HTTP action with the HTTP Webhook action, which waits for the receiver to respond with the status and results after the request finishes processing.

既知の問題Known issues

省略された HTTP ヘッダーOmitted HTTP headers

HTTP トリガーまたはアクションにこれらのヘッダーが含まれている場合、Logic Apps は警告やエラーを表示することなく、生成された要求メッセージからこれらのヘッダーを削除します。If an HTTP trigger or action includes these headers, Logic Apps removes these headers from the generated request message without showing any warning or error:

  • Accept-* ヘッダー (Accept-version を除く)Accept-* headers except for Accept-version
  • Allow
  • Content-* (Content-DispositionContent-Encoding、および Content-Type は例外です)Content-* with these exceptions: Content-Disposition, Content-Encoding, and Content-Type
  • Cookie
  • Expires
  • Host
  • Last-Modified
  • Origin
  • Set-Cookie
  • Transfer-Encoding

Logic Apps では、これらのヘッダーが含まれる HTTP トリガーまたはアクションを使用するロジック アプリの保存は妨げられませんが、これらのヘッダーは無視されます。Although Logic Apps won't stop you from saving logic apps that use an HTTP trigger or action with these headers, Logic Apps ignores these headers.

コネクタのレファレンスConnector reference

トリガーとアクションのパラメーターの詳細については、以下のセクションを参照してください。For more information about trigger and action parameters, see these sections:

次のステップNext steps