API 请求执行


本教程介绍了一个用例,介绍了如何使用 Application Integration 来路由和提取 Ingress API 请求的信息。

概览

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

API 履单情况示意图 API 履单情况示意图

目标

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

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

费用

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

本教程中的说明介绍了如何将资源使用量保持在 Google Cloud 的 “始终免费”层级的限额范围内。

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

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 创建服务帐号:

    1. 在 Google Cloud 控制台中,转到创建服务帐号页面。

      转到“创建服务帐号”
    2. 选择您的项目。
    3. 服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。

      服务帐号说明字段中,输入说明。例如,Service account for quickstart

    4. 点击创建并继续
    5. 向服务帐号授予以下角色: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      如需授予角色,请找到选择角色列表,然后选择相应角色。

      如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。

    6. 点击继续
    7. 点击完成以完成服务帐号的创建过程。

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 创建服务帐号:

    1. 在 Google Cloud 控制台中,转到创建服务帐号页面。

      转到“创建服务帐号”
    2. 选择您的项目。
    3. 服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。

      服务帐号说明字段中,输入说明。例如,Service account for quickstart

    4. 点击创建并继续
    5. 向服务帐号授予以下角色: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      如需授予角色,请找到选择角色列表,然后选择相应角色。

      如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。

    6. 点击继续
    7. 点击完成以完成服务帐号的创建过程。

准备环境

设置 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 连接
在 Integration Connectors 中配置 MySQL 连接,以获取 Customer 个表实体。如需了解如何配置 MySQL 连接器,请参阅 MySQL 连接器
Oracle 数据库连接
在 Integration Connectors 中配置 Oracle 数据库连接,以获取 Customer 表的实体。如需了解如何配置 MySQL 连接器,请参阅 Oracle 数据库连接器

创建集成

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

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

    转到 Application Integration

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

设置集成触发器

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

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

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

    Application Integration 会自动填充触发器标签、触发器名称和触发器 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. 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
  2. 点击连接器元素,并将其放置到集成编辑器中。
  3. 在设计器中选择连接器任务元素,以查看连接器任务配置窗格
  4. 点击 ,然后将连接器标签重命名为 Fetch MySQL Data
  5. 点击配置连接器
  6. 连接器任务编辑器页面中,执行以下操作:
    1. 选择连接下,选择 us-central1 区域。
    2. 从可用连接列表中选择您的 Salesforce 连接。
    3. 点击下一步
    4. 类型下,选择实体
    5. 设置实体/操作下,从可用实体列表中选择客户,然后选择获取作为操作
    6. 点击完成以完成连接配置并关闭窗格。

将客户 ID 映射到 MySQL 连接器

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

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

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

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

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

  7. 添加从 Map to MySQL 任务到 Fetch MySQL 数据连接器的边缘连接

检索 MySQL 客户详细信息

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

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

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

  7. 提取 MySQL 数据连接器到获取 MySQL 数据任务中,添加边缘连接

从 Oracle 数据库检索客户数据

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

连接到 Oracle 数据库

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

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

将客户 ID 映射到 Oracle 连接器

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

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

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

  7. 添加从映射到 Oracle 任务到提取 Oracle 数据连接器的边缘连接

检索 Oracle 客户详细信息

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

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

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

  7. 边缘连接提取 Oracle 数据连接器添加到获取 Oracle 数据任务。

添加边缘条件

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

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

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

集成流程示例

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

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

发布集成

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

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

测试集成

通过集成编辑器测试集成

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

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

    此时将显示测试集成对话框。

  2. 系统会提示您为集成输入变量输入测试值。出于此测试的目的,请执行以下操作:
    • customer_id::输入 1
    • 位置:输入 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 帐号收取费用,请取消发布集成并删除在 Integration Connectors 中创建的连接。

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