Application Integration でサポートされているコネクタをご覧ください。

統合例を試す

Google Cloud プロジェクトで Application Integration を初めて設定するときに、Application Integration により、デフォルトで ExampleIntegration-EcomOrderProcessing という名前の非公開のサンプル統合が作成されます。

サンプル統合を表示する

サンプル統合を表示するには、次の手順を行います。

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

    Application Integration に移動

  2. ナビゲーション メニューで [統合] をクリックします。[統合] のページが表示されます。
  3. [ExampleIntegration-EcomOrderProcessing] という名前の統合をクリックします。

    サンプル統合が、次のレイアウトのような統合エディタで開きます。

    サンプル統合レイアウトの画像 サンプル統合レイアウトの画像

e コマースのサンプル統合

このサンプル統合を使用して、Application Integration のさまざまなトリガータスクコンセプトを実際に体験できます。

このサンプル統合は、次の注文処理オペレーションを実装する基本的な e コマース バックエンドのシナリオを示しています。

  1. API エンドポイントから次の注文リクエスト ペイロードを受信します。
    {
      "order_no": "12345",
      "buyer_id": "raambo",
      "line_items": [
        {
          "line": 1,
          "sku": "tr100",
          "vendor": "Internal",
          "quantity": 1,
          "price_per_unit": 10
        },
        {
          "line": 2,
          "sku": "tbz",
          "vendor": "External",
          "quantity": 24.0,
          "price_per_unit": 1
        }
      ]
    }
  2. 注文ペイロードを抽出し、合計注文額を計算します。
  3. 合計注文金額が $100 以上かどうかを確認します。「はい」の場合は、追加の承認を得て続行します。
  4. 注文アイテムに外部ベンダーがあるかどうかを確認します。「はい」の場合、REST API 呼び出しを使用してベンダーに詳細を送信します。
  5. 合計注文額、フィルタリングされた外部ベンダーのアイテム、それぞれの HTTP レスポンス ステータスとともに、注文レスポンスを送信します。

次の表に、ExampleIntegration-EcomOrderProcessing で使用されるすべてのトリガー、タスク、エッジ条件を示します。

コンポーネント 構成 説明
API トリガー

(OrderProcessAPITrigger)

トリガー ID: api_trigger/ecom-order-processing_API_1 注文リクエストごとに統合を呼び出します。
データ マッピング タスク

(合計注文金額を確認)

Input 出力 order_request JSON 入力変数を抽出し、FOR_EACH マッピング関数を使用してすべての注文項目を反復処理して、合計注文金額を計算します。

合計注文金額は、GET_PROPERTYMULTIPLY のマッピング関数を使用して、アイテム quantityprice_per_item を掛けて計算されます。

最終値は double データ型に変換され、total_order_value 出力変数に格納されます。

orders_request.line_items
.FOR_EACH(~obj1->~obj1
  .GET_PROPERTY("quantity")
  .TO_DOUBLE()
  .MULTIPLY(~obj1
    .GET_PROPERTY("price_per_unit")
    .TO_DOUBLE()))
.TO_DOUBLE_ARRAY()
.SUM()
total_order_value
エッジ条件

(合計注文金額がしきい値を超えている)

条件: $total_order_value$ >= $threshold_order_value$ 合計注文金額が $100 以上かどうかを確認します。「はい」の場合、コントロールは承認タスクに渡されます。
エッジ条件

(合計注文金額がしきい値を超えていない)

条件: $total_order_value$ < $threshold_order_value$ 合計注文金額が $100 未満かどうかを確認します。「はい」の場合、コントロールは外部アイテムのフィルタリング タスクに渡されます。
承認タスク

(承認)

受信者: Enter the approver's email address

このサンプル統合をテストする目的で、メールを使用して統合が正常に完了したことを確認できます。

1 人以上のインテグレーション ユーザーに承認リクエスト メールを送信します。メールには、ユーザーがリクエストを手動で承認または拒否できるインテグレーションへのリンクが含まれます。
データ マッピング タスク

(外部アイテムのフィルタリング)

Input 出力 order_request JSON 入力変数を抽出し、FILTER マッピング関数を使用して、外部ベンダーを含むすべての注文アイテムをフィルタリングします。

フィルタリングされた値は、filtered_external_items 出力変数に保存されます。

orders_request
.GET_PROPERTY("line_items")
.FILTER(~obj1->~obj1
  .GET_PROPERTY("vendor")
  .TO_STRING()
  .EQUALS("External"))
filtered_external_items
For Each Loop タスク

(For Each Loop)

反復処理するリスト: filtered_external_items

API トリガー ID: api_trigger/ecom-order-processing_API_2

統合名: ExampleIntegration-EcomOrderProcessing

filtered_external_items 変数を反復処理し、配列内の各要素のサブ統合を呼び出します。また、rest_call_response_status 内の各実行のレスポンスを照合します。ここで、配列の各要素は 1 つの特定の実行からのレスポンスを受け取ります。
API トリガー

(ExternalOrders を報告)

トリガー ID: api_trigger/ecom-order-processing_API_2 filter_external_items の各要素について、サブ統合を呼び出します。
REST エンドポイントの呼び出しタスク

(REST エンドポイントを呼び出す)

エンドポイントのベース URL: https://mocktarget.apigee.net/echo

HTTP メソッド: POST

リクエスト本文: sub_integration_input

https://mocktarget.apigee.net/echo に対する REST 呼び出しを行います。

サンプル統合を公開してテストする

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

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

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

サンプルの統合をテストするには、次の手順を行います。

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

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

  2. orders_request 入力変数を編集するように求められます。このテストの目的のために、quantity 値を 240 に更新できます。更新した orders_request 入力変数は、次のようになります。
        {
          "order_no": "12345",
          "buyer_id": "raambo",
          "line_items": [
            {
              "line": 1,
              "sku": "tr100",
              "vendor": "Internal",
              "quantity": 1,
              "price_per_unit": 10
            },
            {
              "line": 2,
              "sku": "tbz",
              "vendor": "External",
              "quantity": 240,
              "price_per_unit": 1
            }
          ]
        }
        
  3. [Test Integration] をクリックします。

更新された orders_request 数量は 200 より大きいため、サンプルのインテグレーションでは、承認タスク受信者フィールドに指定されたメールアドレスへ承認リクエスト メールを送信します。承認が完了すると、統合注文オペレーションは正常に完了します。

テストの詳細については、インテグレーションをテストして公開するをご覧ください。

次の手順で実行ログを調べて、特定のインテグレーションのステータスとペイロードを表示します。

  1. 統合エディタで、実行ログのアイコンを示す画像 [View execution logs for this integration] をクリックします。実行ログのページが表示されます。
  2. [Execution Logs] ページでは、統合の実行の試行ごとに関する詳細を確認できます。各エントリには、以下のような実行の試行の詳細が含まれます。
    • 連携名
    • 実行 ID
    • ステータス
    • 開始時間
    • 所要時間
    • 統合バージョン
    • トリガー ID
  3. 実行された統合の横にある展開の矢印(>)をクリックすると、展開された統合のタスクと変数のリストと、タスクのステータスと変数のペイロードが表示されます。

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

テストケース 1: デフォルトの入力を使用してリクエストを送信する

  curl -X POST -H "Content-Type: application/json" -d '{"trigger_id":"api_trigger/ecom-order-processing_API_1"}' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"

テストケース 2: カスタム入力を使用してリクエストを送信する

  curl -X POST -H "Content-Type: application/json" -d '{ "triggerId": "api_trigger/ecom-order-processing_API_1", "inputParameters": { "orders_request": { "jsonValue": "{\n \"order_no\": \"12345\",\n \"buyer_id\": \"raambo\",\n \"line_items\": [{\n \"line\": 1.0,\n \"sku\": \"tr100\",\n \"vendor\": \"Internal\",\n \"quantity\": 1.0,\n \"price_per_unit\": 10.0\n }, {\n \"line\": 2.0,\n \"sku\": \"tbz\",\n \"vendor\": \"External\",\n \"quantity\": 24.0,\n \"price_per_unit\": 2.0\n }]\n}" } } }' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID。
  • LOCATION: インテグレーションのロケーション。Application Integration のロケーションをご覧ください。
  • INTEGRATION_NAME: インテグレーションの名前。

テスト出力

API は、すべての統合出力変数値を含む統合実行レスポンスを返します。

割り当てと上限

割り当てと上限については、割り当てと上限をご覧ください。