API 请求执行


本教程介绍了如何使用 Application Integration 为 Ingress API 请求路由和提取信息。

概览

在本教程中,您将创建与 API 触发器的集成,该触发器接收用于检索客户信息的 API 请求。根据 API 请求位置,集成会从 MySQL 数据库或 Oracle 数据库检索客户详细信息。

API 执行图 API 执行图

目标

本教程介绍了如何在集成中完成以下任务:

  • 添加 API 触发器。
  • 为 MySQL 和 Oracle 连接添加和配置连接器任务。
  • 添加和配置数据映射任务,以提取和映射 API 载荷。

费用

在本教程中,您将使用 Google Cloud 的以下付费组件:

本教程中的说明旨在确保您的资源使用量保持在 Google Cloud 的 “始终免费”层级的限额范围内。

完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

准备环境

设置 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 文档

配置连接

在本教程中,您必须在集成连接器中配置以下连接:

MySQL 连接
在集成连接器中配置 MySQL 连接,以获取 Customer 表实体。如需了解如何配置 MySQL 连接器,请参阅 MySQL 连接器
Oracle 数据库连接
在 Integration Connectors 中配置 Oracle 数据库连接,以获取 Customer 个表实体。如需了解如何配置 MySQL 连接器,请参阅 Oracle 数据库连接器

创建集成

如需创建新的集成,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击集成。系统随即会显示集成页面。
  3. 点击 创建集成,然后在创建集成页面中提供以下详细信息:
    1. 集成名称:输入 api_fulfilment
    2. 说明:输入 Demo integration created for tutorial
    3. 区域:从支持的区域列表中选择 us-central1
    4. 点击创建以打开集成编辑器。

设置集成触发器

成功创建集成后,您可以添加和配置集成触发器,以便针对识别到的事件调用集成。

在本教程中,API 触发器用于为每个新的 API 请求调用集成。如需在 api_fulfilment 集成中添加和配置 API 触发器,请执行以下操作:

  1. 在集成编辑器中,点击触发器以显示可用触发器列表。
  2. 点击 API 触发器元素,并将其放入集成编辑器中。

    应用集成会自动填充触发器标签、触发器名称和触发器 ID。触发器 ID 是机器生成的 ID,格式为 api_trigger/TRIGGER_NAME,用于 API 请求。

  3. 此触发器无需进一步配置。

创建集成变量

集成变量类似于编程语言中使用的变量。在集成执行过程中,可以读取和写入变量中的数据。如需创建本教程所需的变量,请执行以下操作:

  1. 点击设计器导航栏中的 (切换面板)以显示变量窗格。
  2. 点击 + 创建并创建以下集成变量:
    变量名称 数据类型 变量类型
    location STRING 输入到集成
    customer_id STRING 输入到集成
    customer_record JSON 集成的输出

从 MySQL 数据库中检索客户数据

如果 Ingress API 请求来自 US 位置,请执行以下操作,从 MySQL 数据库中检索客户数据。

连接到 MySQL 数据库

请执行以下步骤来添加和配置连接器任务,以从 MySQL Customers 表中检索客户详细信息:

  1. 在集成编辑器中,点击任务以显示可用任务列表。
  2. 点击连接器元素,并将其放置到集成编辑器中。
  3. 选择设计器上的连接器任务元素,以查看连接器任务配置窗格
  4. 点击 ,然后将连接器标签重命名为 Fetch MySQL Data
  5. 点击配置连接器
  6. 连接器任务编辑器页面中执行以下操作:
    1. 选择连接下,选择 us-central1 区域。
    2. 从可用连接列表中选择您的 Salesforce 连接。
    3. 点击下一步
    4. Type(类型)下,选择 Entities(实体)。
    5. 设置实体/操作下,从可用实体列表中选择客户,然后选择Get 作为操作
    6. 点击完成以完成连接配置并关闭窗格。

将客户 ID 映射到 MySQL 连接器

数据映射任务用于将客户 ID 映射到 MySQL 连接器。如需在集成中添加和配置数据映射,请执行以下操作:

  1. 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
  2. 点击数据映射元素,并将其放置到集成编辑器中。
  3. 选择设计器上的数据映射元素以查看任务配置窗格。
  4. 点击 ,然后将数据映射任务重命名为 Map to MySQL
  5. 点击打开数据映射编辑器

    借助数据映射编辑器,您可以使用可用的转换函数将输入变量映射为所需的输出变量。然后,输出可用作任何其他集成任务或触发器的变量。如需详细了解 映射变量,请参阅添加映射

  6. 将触发器 - customer_id - 集成变量映射到自动生成的连接器 - entityId(Fetch MySQL Data) - 输入变量。

    映射完成后,关闭窗格。 所有更改都将自动保存。

  7. 从“映射到 MySQL”任务到“提取 MySQL 数据”连接器添加边缘连接

检索 MySQL 客户详细信息

如需从 MySQL 连接器检索客户详细信息,请执行以下操作:

  1. 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
  2. 点击数据映射元素,并将其放置到集成编辑器中。
  3. 点击设计器上的数据映射元素,以查看任务配置窗格。
  4. 点击 ,然后将数据映射任务重命名为 Get MySQL data
  5. 点击 Open Data Mapping Editor
  6. 将 MySQL connectorOutputPayload (Fetch MySQL Data) 输出变量映射到 customer_record 集成变量。

    映射完成后,关闭窗格。 系统会自动保存所有更改。

  7. 在“获取 MySQL 数据”任务中,从“获取 MySQL 数据”连接器中添加边缘连接

从 Oracle 数据库检索客户数据

如果 Ingress API 请求来自 APAC 位置,请执行以下操作,从 Oracle 数据库检索客户数据。

连接到 Oracle 数据库

请执行以下步骤,添加并配置连接器任务,以从 Oracle Customers 表中检索客户详细信息:

  1. 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
  2. 点击连接器元素,并将其放置到集成编辑器中。
  3. 在设计器上选择连接器任务元素,以查看连接器任务 配置窗格
  4. 点击 ,然后将连接器标签重命名为 Fetch Oracle Data
  5. 点击配置连接器
  6. 连接器任务编辑器页面中执行以下操作:
    1. 选择连接下,选择 us-central1 区域。
    2. 从可用连接列表中选择您的 Salesforce 连接。
    3. 点击下一步
    4. Type(类型)下,选择 Entities(实体)。
    5. 设置实体/操作下,从可用实体列表中选择客户,然后选择Get 作为操作
    6. 点击完成以完成连接配置并关闭窗格。

将客户 ID 映射到 Oracle 连接器

如需在集成中添加和配置数据映射,请执行以下操作:

  1. 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
  2. 点击数据映射元素,并将其放置到集成编辑器中。
  3. 在设计器上选择数据映射元素,以查看任务配置窗格。
  4. 点击 ,然后将数据映射任务重命名为 Map to Oracle
  5. 点击打开数据映射编辑器
  6. 将触发器 - customer_id - 集成变量映射到自动生成的连接器 - entityId(Fetch Oracle Data) - 输入变量。

    映射完成后,关闭窗格。 所有更改都将自动保存。

  7. 将“映射到 Oracle”任务中的边缘连接添加到“提取 Oracle 数据”连接器。

检索 Oracle 客户详细信息

要从 Oracle 连接器检索客户详细信息,请执行以下操作:

  1. 在集成编辑器中,点击任务以显示可用任务列表。
  2. 点击数据映射元素,并将其放置到集成编辑器中。
  3. 点击设计器上的数据映射元素以查看任务配置窗格。
  4. 点击 ,然后将数据映射任务重命名为 Get Oracle data
  5. 点击打开数据映射编辑器
  6. 将 Oracle connectorOutputPayload (Fetch Oracle Data) 输出变量映射到 customer_record 集成变量。

    映射完成后,关闭窗格。 系统会自动保存所有更改。

  7. 将“获取 Oracle 数据”连接器中的边缘连接添加到“获取 Oracle 数据”任务。

添加边缘条件

通过边缘条件,您可以指定必须满足哪些条件,才能控制要传递给通过边缘连接的任务的集成。现在,您已经添加并配置了所需任务,接下来可以添加边缘条件来定义集成流程。

以下边缘条件会根据 location 集成变量控制集成流程:

  1. 使用以下边缘条件添加从 API 触发器到映射到 MySQL 任务的边缘连接:
      $location$ = "US"
  2. 使用以下边缘条件将另一个从 API 触发器添加到 Map to Oracle 任务的边缘连接:
      $location$ = "APAC"

集成流程示例

下图显示了使用本教程创建的集成的示例布局。

显示集成流程的示例图片 显示集成流程的示例图片

发布集成

要发布集成,请点击集成编辑器工具栏中的发布

成功发布集成后,您可以查看和检查已发布集成的执行日志。如需查看日志,请点击 显示执行日志图标的图片查看此集成的执行日志。随即会出现执行日志页面。

测试集成

通过集成编辑器测试集成

如需通过集成编辑器测试集成,请执行以下步骤:

  1. 点击集成编辑器工具栏中的 Test

    此时会显示测试集成窗格。

  2. 系统会提示您为集成输入变量输入测试值。为进行此测试,请执行以下操作:
    • customer_id:输入 1
    • location:输入 APAC
  3. 点击测试集成

集成会成功执行,并显示以下客户价值:

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

如需详细了解测试,请参阅测试和发布集成

使用 REST API 调用进行测试

现在,集成已发布并运行,您可以使用以下 POST REST 调用调用它:

网址:
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 账号产生费用,请取消发布集成,并删除在集成连接器中创建的关联。

  • 如需取消发布此集成,请点击集成编辑器工具栏中的取消发布。如需了解详情,请参阅删除集成
  • 要了解如何删除连接,请参阅管理连接器