API リクエストのフルフィルメント

このチュートリアルでは、Application Integration を使用して Ingress API リクエストの情報をルーティングおよびフェッチする方法のユースケースについて説明します。

概要

このチュートリアルでは、顧客情報を取得するための API リクエストを受信する API トリガーを使用して統合を作成します。API リクエストのロケーションに応じて、統合では MySQL データベースまたは Oracle データベースのいずれかから顧客の詳細情報を取得します。

API フルフィルメントの図 API フルフィルメントの図

環境を準備する

MySQL データベースを設定する

MySQL サーバーに接続し、このチュートリアルで使用するデータベースとテーブルを作成します。このチュートリアルでは、Customers という名前のテーブルと次の行を含むデータベースを使用します。

  +-------------+---------------+--------------------+------------------+
  | customer_id | customer_name | customer_emailID   | customer_city    |
  +-------------+---------------+--------------------+------------------+
  |           1 | Alex          | test-01@test.com   | New York         |
  |           2 | Dana          | test-02@test.com   | Seattle          |
  +-------------+---------------+--------------------+------------------+
  

MySQL データベースの作成と使用については、MySQL のドキュメントをご覧ください。

Oracle データベースを設定する

Oracle データベースに接続し、このチュートリアルで使用するテーブルを作成します。このチュートリアルでは、Customers という名前の SQL テーブルと次の行を含むデータベースを使用します。

  +-------------+---------------+--------------------+------------------+
  | customer_id | customer_name | customer_emailID   | customer_city    |
  +-------------+---------------+--------------------+------------------+
  |           1 | Amal          | test-01@test.com   | Delhi            |
  |           2 | Hao           | test-02@test.com   | Beijing          |
  +-------------+---------------+--------------------+------------------+
  

Oracle データベースの作成と使用については、Oracle のドキュメントをご覧ください。

接続を設定

このチュートリアルでは、Integration Connectors で次の接続を構成する必要があります。

MySQL 接続
Integration Connectors で MySQL 接続を構成して、Customer テーブル エンティティを取得します。MySQL コネクタの構成については、MySQL コネクタをご覧ください。
Oracle DB 接続
Integration Connectors で Oracle DB 接続を構成して、Customer テーブル エンティティを取得します。MySQL コネクタの構成については、Oracle DB コネクタをご覧ください。

統合を作成する

新しい統合を作成するには、次の手順を行います。

  1. Google Cloud コンソールで [Application Integration] ページに移動します。

    Application Integration に移動

  2. 左側のナビゲーション メニューで [Integrations] をクリックして、[Integrations] ページを開きます。
  3. [ 統合を作成] をクリックし、[統合を作成] ページで次の情報を入力します。
    1. 連携名:api_fulfilment」と入力します。
    2. 説明:Demo integration created for tutorial」と入力します。
    3. リージョン: サポートされているリージョンのリストから us-central1 を選択します。
    4. [作成] をクリックして統合エディタを開きます。

インテグレーション トリガーを設定する

統合が正常に作成されたら、特定されたイベントの統合を呼び出す統合トリガーを追加して構成できます。

このチュートリアルでは、API トリガーを使用して、新しい API リクエストごとに統合を呼び出します。api_fulfilment 統合で API トリガーを追加して構成するには、次の操作を行います。

  1. 統合エディタで [トリガー] をクリックし、使用可能なトリガーのリストを表示します。
  2. 統合エディタで、[API トリガー] 要素をクリックして配置します。

    Application Integration では、トリガーの [ラベル]、[トリガー名]、[トリガー ID] が自動的に入力されます。[トリガー ID] は、api_trigger/TRIGGER_NAME の形式で自動生成された ID であり、API リクエストで使用されます。

  3. このトリガーに必要な構成はありません。

統合変数を作成する

統合変数は、プログラミング言語で使用される変数と似ています。統合の実行中に、変数内のデータの読み取りと書き込みを行うことができます。このチュートリアルに必要な変数を作成するには、次の操作を行います。

  1. デザイナー ナビゲーション バーの (切り替えパネル)をクリックして、[変数] ペインを表示します。
  2. [+ 作成] をクリックして、次の統合変数を作成します。
    変数名 データ型 変数タイプ
    location STRING 統合への入力
    customer_id STRING 統合への入力
    customer_record JSON 統合からの出力

MySQL データベースから顧客データを取得する

Ingress API リクエストが US ロケーションから送信された場合は、以下の手順で MySQL データベースから顧客データを取得します。

MySQL データベースに接続する

以下の手順で、Connectors タスクを追加して構成し、MySQL 顧客テーブルから顧客情報を取得します。

  1. 統合エディタで [タスク] をクリックし、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Connectors] 要素をクリックして配置します。
  3. デザイナーで [Connectors] タスク要素を選択して、[Connectors] タスク構成ペインを表示します。
  4. [] をクリックし、Connectors ラベルの名前を Fetch MySQL Data に変更します。
  5. [コネクタを設定する] をクリックします。
  6. [Connectors Task Editor] ページで、次の操作を行います。
    1. [Select connection] で、us-central1 リージョンを選択します。
    2. 使用可能な接続のリストから Salesforce 接続を選択します。
    3. [次へ] をクリックします。
    4. [タイプ] で [エンティティ] を選択します。
    5. [Set entities/actions] で使用可能なエンティティのリストから [顧客] を選択し、[オペレーション] として [入手] を選択します。
    6. [完了] をクリックして接続の構成を完了し、ペインを閉じます。

お客様 ID を MySQL コネクタにマッピングする

Data Mapping タスクを使用して、お客様 ID を MySQL コネクタにマッピングします。統合でデータ マッピングを追加して構成するには、次の操作を行います。

  1. 統合エディタで [タスク] をクリックし、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーで [Data Mapping] 要素を選択して、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Map to MySQL に変更します。
  5. [Open Data Mapping Editor] をクリックします。

    データ マッピング エディタを使用すると、使用可能な変換関数を使用して、入力変数を目的の出力変数にマッピングできます。出力は、他の統合タスクまたはトリガーの変数として使用できます。マッピング変数の詳細については、マッピングを追加するをご覧ください。

  6. トリガー(customer_id)統合変数を自動生成されたコネクタ(entityId(Fetch MySQL Data))入力変数にマッピングします。

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  7. Map to MySQL タスクから Fetch MySQL Data コネクタにエッジ接続を追加します。

MySQL の顧客の詳細を取得する

MySQL コネクタからお客様の詳細を取得するには、次の手順を実行します。

  1. 統合エディタで [タスク] をクリックし、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーの [Data Mapping] 要素をクリックして、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Get MySQL data に変更します。
  5. [Open Data Mapping Editor] をクリックします。
  6. MySQL の connectorOutputPayload (Fetch MySQL Data) 出力変数を customer_record 統合変数にマッピングします。

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  7. Fetch MySQL Data コネクタから Get MySQL data タスクにエッジ接続を追加します。

Oracle データベースから顧客データを取得する

Ingress API リクエストが APAC ロケーションから送信された場合は、以下の手順で Oracle データベースから顧客データを取得します。

Oracle データベースに接続する

以下の手順で、Connectors タスクを追加して構成し、Oracle 顧客テーブルから顧客情報を取得します。

  1. 統合エディタで [タスク] をクリックし、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Connectors] 要素をクリックして配置します。
  3. デザイナーで [Connectors] タスク要素を選択して、[Connectors] タスク構成ペインを表示します。
  4. [] をクリックし、Connectors ラベルの名前を Fetch Oracle Data に変更します。
  5. [コネクタを設定する] をクリックします。
  6. [Connectors Task Editor] ページで、次の操作を行います。
    1. [Select connection] で、us-central1 リージョンを選択します。
    2. 使用可能な接続のリストから Salesforce 接続を選択します。
    3. [次へ] をクリックします。
    4. [タイプ] で [エンティティ] を選択します。
    5. [Set entities/actions] で使用可能なエンティティのリストから [顧客] を選択し、[オペレーション] として [入手] を選択します。
    6. [完了] をクリックして接続の構成を完了し、ペインを閉じます。

顧客 ID を Oracle コネクタにマッピングする

統合でデータ マッピングを追加して構成するには、次の操作を行います。

  1. 統合エディタで [タスク] をクリックし、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーで [Data Mapping] 要素を選択して、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Map to Oracle に変更します。
  5. [Open Data Mapping Editor] をクリックします。
  6. トリガー(customer_id)統合変数を自動生成されたコネクタ(entityId(Fetch Oracle Data))入力変数にマッピングします。

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  7. Map to Oracle タスクから Fetch Oracle Data コネクタにエッジ接続を追加します。

Oracle の顧客の詳細を取得する

Oracle コネクタから顧客の詳細を取得するには、次の手順を実行します。

  1. 統合エディタで [タスク] をクリックし、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーの [Data Mapping] 要素をクリックして、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Get Oracle data に変更します。
  5. [Open Data Mapping Editor] をクリックします。
  6. Oracle の connectorOutputPayload (Fetch Oracle Data) 出力変数を customer_record 統合変数にマッピングします。

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  7. Fetch Oracle Data コネクタから Get Oracle data タスクにエッジ接続を追加します。

エッジ条件を追加する

エッジ条件を使用すると、統合を制御するために満たされる必要がある条件を指定して、エッジで接続されたタスクに渡すことができます。必要なタスクの追加と構成が完了したので、エッジ条件を追加して統合のフローを定義できます。

次のエッジ条件により、location 統合変数に基づいて統合のフローが制御されます。

  1. 次のエッジ条件で、API トリガーから Map to MySQL タスクにエッジ接続を追加します。
      $location$ = "US"
  2. 次のエッジ条件で、API トリガーから Map to Oracle タスクに別のエッジ接続を追加します。
      $location$ = "APAC"

統合フローのサンプル

次の図は、このチュートリアルで作成した統合のサンプル レイアウトを示しています。

統合フローを示すサンプル画像 統合フローを示すサンプル画像

統合を公開する

統合を公開するには、統合デザイナー ツールバーの [公開] をクリックします。

統合が正常に公開されると、公開された統合の実行ログを表示、検査できます。ログを表示するには、[実行ログのアイコンを示す画像View execution logs for this integration] をクリックします。実行ログのページが表示されます。

統合をテストする

統合エディタから統合をテストする

統合エディタから統合をテストするには、次の手順を実行します。

  1. 統合エディタのツールバーで、 [テスト] をクリックします。

    [テスト統合] ペインが表示されます。

  2. 統合入力変数のテスト値の入力するよう求められます。このテストの目的のために、次の操作を行います。
    • customer_id:1」と入力します。
    • ロケーション:APAC」と入力します。
  3. [Test Integration] をクリックします。

統合は正常に実行され、次の顧客の値が表示されます。

{ 
  "CUSTOMER_ID": 1,
  "CUSTOMER_NAME": "Amal"
  "CUSTOMER_EMAILID": "test-01@test.com "
  "CUSTOMER_CITY": "Delhi"
}

テストの詳細については、統合をテストして公開するをご覧ください。

REST API 呼び出しを使用してテストする

統合が公開され実行されるようになったので、次の POST REST 呼び出しを使用して統合を呼び出すことができます。

URL:
https://integrations.googleapis.com/v1/projects/project-name/locations/-/integrations/api_fulfilment:execute 
リクエストの本文:
{"trigger_id":"api_trigger/api_fulfilment_API_1"}

例: カスタム入力を使用して API リクエストを実行する

curl -v -X POST -H "Content-Type: application/json" 'https://integrations.googleapis.com/v1/projects/connectors-ip-test/locations/us-central1/integrations/api-fulfillment-integration:execute' -H "Authorization: Bearer $(gcloud auth AUTH_PROFILE)" -d  '{ "triggerId": "api_trigger/api-fulfillment-integration_API_1", "inputParameters": { "customer_id": {"string_value": 1}, "location" : {"string_value" : "US"}} }'

API は、次の JSON をすべて含む統合実行レスポンスを返します。

  { 
    "CUSTOMER_ID": 2,
    "CUSTOMER_NAME": "Dana"
    "CUSTOMER_EMAILID": "test-02@test.com "
    "CUSTOMER_CITY": "Seattle"
  }
  

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、統合の公開を停止して、Integration Connectors で作成した接続を削除します。

  • この統合の公開を停止するには、統合エディタ ツールバーの [公開を停止] をクリックします。詳細については、統合を削除するをご覧ください。
  • 接続を削除する方法については、コネクタを管理するをご覧ください。