Azure Logic Apps のワークフローから REST エンドポイントを呼び出す

組み込みの HTTP + Swagger 操作と Azure Logic Apps を使うと、Swagger ファイルを介して任意の REST エンドポイントを定期的に呼び出す自動統合ワークフローを作成できます。 HTTP + Swagger トリガーおよびアクションは HTTP トリガーおよびアクションと同様に機能しますが、Swagger ファイルで記述された API の構造と出力を公開することにより、ワークフロー デザイナーのエクスペリエンスが向上します。 ポーリング トリガーを実装する場合は、ロジック アプリ ワークフローから他の API、サービス、システムを呼び出すためのカスタム API の作成に関するページで説明されているポーリング パターンに従ってください。

前提条件

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

  • 呼び出すターゲット REST エンドポイントを記述した Swagger ファイル (OpenAPI 3.0 ではなく OpenAPI 2.0) の URL

    通常、トリガーまたはアクションが機能するには、REST エンドポイントが次の条件を満たしている必要があります。

    • Swagger ファイルは、パブリックにアクセス可能な HTTPS URL でホストされている必要があります。

    • Swagger ファイルには、定義内の各操作に対して operationID プロパティを含める必要があります。 そうでない場合、コネクタによって Swagger ファイル内の最後の操作のみが表示されます。

    • Swagger ファイルでは、クロスオリジン リソース共有 (CORS) が有効になっている必要があります。

    このトピックの例では、Cognitive Services アカウントとアクセス キーを必要とする Cognitive Services Face API を使用します。

    Note

    参照する Swagger ファイルがホストされていない場合やセキュリティとクロスオリジンの要件を満たしていない場合は、Azure ストレージ アカウント内の BLOB コンテナーにその Swagger ファイルをアップロードし、そのストレージ アカウントで CORS を有効にすると、そのファイルを参照できるようになります。

  • ターゲット エンドポイントの呼び出し元となるロジック アプリ ワークフロー。 HTTP + Swagger トリガーを使って開始するには、空のロジック アプリ ワークフローを作成します。 HTTP + Swagger アクションを使うには、任意のトリガーを使って対象のワークフローを起動します。 この例では、最初のステップとして HTTP + Swagger トリガーを使用しています。

HTTP + Swagger トリガーの追加

この組み込みのトリガーを使うと、REST API を記述した Swagger ファイルの URL に HTTP 要求を送信できます。 このトリガーにより、そのファイルの内容を含む応答が返されます。

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

  2. デザイナーの検索ボックスに、「swagger」と入力します。 [トリガー] の一覧から、 [HTTP + Swagger] トリガーを選択します。

    HTTP + Swagger トリガーを選択する

  3. [Swagger エンドポイント URL] ボックスに対象の Swagger ファイルの URL を入力し、[次へ] を選択します。

    必ず独自のエンドポイントを使うか、作成してください。 一例として、これらの手順では米国西部リージョンにある次の Cognitive Services Face API Swagger URL を使っていますが、お客様のトリガーでは機能しない可能性があります。

    https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/export?DocumentFormat=Swagger&ApiName=Face%20API%20-%20V1.0

    ワークフロー デザイナーを示すスクリーンショット。[HTTP + Swagger] トリガーと [Swagger エンドポイント URL] プロパティが URL 値に設定されています。

  4. Swagger ファイルで記述された操作がデザイナーに表示されたら、使用する操作を選択します。

    ワークフロー デザイナーを示すスクリーンショット。[HTTP + Swagger] トリガーと Swagger 操作が表示されている一覧を確認できます。

  5. エンドポイント呼び出しに含めるトリガー パラメーターの値を指定します (パラメーターは、選択した操作によって異なります)。 トリガーでエンドポイントを呼び出す頻度を設定します。

    この例では、トリガー名を "HTTP + Swagger trigger: Face - Detect" に変更して、このステップの名前をよりわかりやすくします。

    ワークフロー デザイナーを示すスクリーンショット。[顔 - 検出] 操作が表示されている [HTTP + Swagger] トリガーを確認できます。

  6. その他の使用可能なパラメーターを追加するには、 [新しいパラメーターの追加] リストを開き、必要なパラメーターを選択します。

    HTTP + Swagger に使用できる認証の種類の詳細については、送信呼び出しへの認証の追加に関するページを参照してください。

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

  8. 完了したら、忘れずにワークフローを保存してください。 デザイナーのツール バーで、 [保存] を選択します。

HTTP + Swagger アクションの追加

この組み込みアクションを使うと、REST API を記述した Swagger ファイルの URL に HTTP 要求を送信できます。 このアクションにより、そのファイルの内容を含む応答が返されます。

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

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

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

  3. デザイナーの検索ボックスに、「swagger」と入力します。 [アクション] の一覧で、 [HTTP + Swagger] アクションを選択します。

    HTTP + Swagger アクションの選択

  4. [Swagger エンドポイント URL] ボックスに対象の Swagger ファイルの URL を入力し、[次へ] を選択します。

    必ず独自のエンドポイントを使うか、作成してください。 一例として、これらの手順では米国西部リージョンにある次の Cognitive Services Face API Swagger URL を使っていますが、お客様のアクションでは機能しない可能性があります。

    https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/export?DocumentFormat=Swagger&ApiName=Face%20API%20-%20V1.0

    Swagger エンドポイントの URL を入力する

  5. Swagger ファイルで記述された操作がデザイナーに表示されたら、使用する操作を選択します。

    Swagger ファイル内の操作

  6. エンドポイント呼び出しに含めるアクション パラメーターの値を指定します (パラメーターは、選択した操作によって異なります)。

    この例では、パラメーターがありませんが、アクション名を "HTTP + Swagger action: Face - Identify" に変更して、このステップの名前をよりわかりやすくします。

    操作の詳細

  7. その他の使用可能なパラメーターを追加するには、 [新しいパラメーターの追加] リストを開き、必要なパラメーターを選択します。

    HTTP + Swagger に使用できる認証の種類の詳細については、送信呼び出しへの認証の追加に関するページを参照してください。

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

Azure Storage での Swagger のホスト

ホストされていない、またはセキュリティとクロスオリジン要件を満たさない Swagger ファイルを参照することはできます。 Azure Storage アカウントの BLOB コンテナーに Swagger ファイルをアップロードし、そのストレージ アカウントで CORS を有効にします。 Swagger ファイルを作成および設定し、Azure Storage に保存するには、次の手順に従います。

  1. Azure Storage アカウントを作成します。

  2. ここで、BLOB に対して CORS を有効にします。 ストレージ アカウント メニューの [CORS] を選択します。 [Blob service] タブで以下の値を指定し、 [保存] を選択します。

    プロパティ
    許可されたオリジン *
    許可されたメソッド GET, HEAD, PUT
    許可されたヘッダー *
    公開されるヘッダー *
    最長有効期間 (秒) 200

    この例では Azure portal を使用していますが、Azure Storage Explorer などのツールを使用することもできます。また、このサンプル PowerShell スクリプトを使用して、この設定を自動的に構成することもできます。

  3. BLOB コンテナーを作成します。 コンテナーの [概要] ウィンドウで、 [アクセス レベルを変更します] を選択します。 [パブリック アクセス レベル] の一覧で、 [BLOB (BLOB 専用の匿名読み取りアクセス)] を選択し、 [OK] を選択します。

  4. Azure portal または Azure Storage Explorer のいずれかから、Swagger ファイルを BLOB コンテナーにアップロードします。

  5. BLOB コンテナー内のファイルを参照するには、次の形式の HTTPS URL を Azure Storage Explorer から取得します。URL の大文字と小文字は区別されます。

    https://<storage-account-name>.blob.core.windows.net/<blob-container-name>/<complete-swagger-file-name>?<query-parameters>

コネクタのレファレンス

このセクションでは、HTTP + Swagger トリガーまたはアクションからの出力の詳細情報について説明します。 HTTP + Swagger の呼び出しにより、次の情報が返されます。

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

次のステップ