概览
在本教程中,您将创建一个与 API 触发器的集成,该触发器可接收 API 请求以检索客户信息。根据 API 请求位置,集成会从 MySQL 数据库或 Oracle 数据库中检索客户详细信息。
目标
本教程介绍了如何在集成中完成以下任务:
- 添加 API 触发器。
- 为 MySQL 和 Oracle 连接添加和配置 Connectors 任务。
- 添加和配置数据映射任务,以提取和映射 API 载荷。
费用
在本教程中,您将使用 Google Cloud 的以下可计费组件:
本教程中的说明介绍了如何将资源使用量保持在 Google Cloud 的 “始终免费”层级的限额范围内。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
向服务帐号授予以下角色: Secret Manager Viewer (
roles/secretmanager.viewer
), Secret Manager Secret Accessor (roles/secretmanager
).如需授予角色,请找到选择角色列表,然后选择相应角色。
如需授予其他角色,请点击
添加其他角色,然后添加其他各个角色。 - 点击继续。
-
点击完成以完成服务帐号的创建过程。
-
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
向服务帐号授予以下角色: Secret Manager Viewer (
roles/secretmanager.viewer
), Secret Manager Secret Accessor (roles/secretmanager
).如需授予角色,请找到选择角色列表,然后选择相应角色。
如需授予其他角色,请点击
添加其他角色,然后添加其他各个角色。 - 点击继续。
-
点击完成以完成服务帐号的创建过程。
-
准备环境
设置 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 数据库连接器。
创建集成
如需创建新的集成,请执行以下步骤:
- 在 Google Cloud 控制台中,前往 Application Integration 页面。
- 在导航菜单中,点击 Integrations(集成)。随即会出现集成列表页面。
- 点击
- Integration name(集成名称):输入
api_fulfilment
。 - 说明:输入
Demo integration created for tutorial
。 - 区域:从支持的区域列表中选择
us-central1
。 - 点击创建以打开集成编辑器。
创建集成,然后在创建集成页面中提供以下详细信息:
- Integration name(集成名称):输入
设置集成触发器
成功创建集成后,您可以添加和配置集成触发器,以针对已识别的事件调用集成。
在本教程中,API 触发器用于为每个新的 API 请求调用集成。如需在 api_fulfilment
集成中添加和配置 API 触发器,请执行以下操作:
- 在集成编辑器中,点击触发器以显示可用触发器的列表。
- 点击 API 触发器元素,并将其放置在集成编辑器中。
Application Integration 会自动填充触发器标签、触发器名称和触发器 ID。触发器 ID 是机器生成的 ID,格式为
api_trigger/TRIGGER_NAME
,用于 API 请求。
此触发器无需进一步配置。
创建集成变量
集成变量类似于编程语言中使用的变量。在集成执行期间,可以读取和写入变量中的数据。如需创建本教程所需的变量,请执行以下操作:
- 点击设计器导航栏中的 (切换面板)以打开变量窗格。
- 点击 + 创建,然后创建以下集成变量:
变量名称 数据类型 变量类型 location
STRING
从输入到集成 customer_id
STRING
输入到集成 customer_record
JSON
集成的输出
从 MySQL 数据库中检索客户数据
如果 Ingress API 请求来自 US
位置,则执行以下操作以从 MySQL 数据库中检索客户数据。
连接到 MySQL 数据库
执行以下步骤,添加和配置连接器任务,以便从 MySQL Customers 表中检索客户详细信息:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 在设计器中选择连接器任务元素,以查看连接器任务配置窗格。
- 点击
Fetch MySQL Data
。
,然后将连接器标签重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择客户,然后选择获取作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
将客户 ID 映射到 MySQL 连接器
数据映射任务用于将客户 ID 映射到 MySQL 连接器。如需在集成中添加和配置数据映射,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 选择设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Map to MySQL
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
借助数据映射编辑器,您可以使用可用的转换函数将输入变量映射到所需的输出变量。然后,输出可用作任何其他集成任务或触发器的变量。如需详细了解如何映射变量,请参阅添加映射。
- 将触发器
customer_id
(集成变量)映射到自动生成的连接器entityId(Fetch MySQL Data)
(输入变量)。映射完成后,关闭窗格。 所有更改都将自动保存。
- 添加从 Map to MySQL 任务到 Fetch MySQL 数据连接器的边缘连接。
检索 MySQL 客户详细信息
如需从 MySQL 连接器中检索客户详细信息,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 点击设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Get MySQL data
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 将 MySQL -
connectorOutputPayload (Fetch MySQL Data)
输出变量映射到customer_record
集成变量。映射完成后,关闭窗格。 所有更改都会自动保存。
- 从提取 MySQL 数据连接器到获取 MySQL 数据任务中,添加边缘连接。
从 Oracle 数据库检索客户数据
如果 Ingress API 请求来自 APAC
位置,则执行以下操作以从 Oracle 数据库检索客户数据。
连接到 Oracle 数据库
执行以下步骤,添加和配置连接器任务,以便从 Oracle 客户表中检索客户详细信息:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 在设计器中选择连接器任务元素,以查看连接器任务配置窗格。
- 点击
Fetch Oracle Data
。
,然后将连接器标签重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择客户,然后选择获取作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
将客户 ID 映射到 Oracle 连接器
如需在集成中添加和配置数据映射,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 选择设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Map to Oracle
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 将触发器
customer_id
(集成变量)映射到自动生成的连接器entityId(Fetch Oracle Data)
(输入变量)。映射完成后,关闭窗格。 所有更改都将自动保存。
- 添加从映射到 Oracle 任务到提取 Oracle 数据连接器的边缘连接。
检索 Oracle 客户详细信息
要从 Oracle 连接器检索客户详细信息,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 点击设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Get Oracle data
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 将 Oracle
connectorOutputPayload (Fetch Oracle Data)
输出变量映射到customer_record
集成变量。映射完成后,关闭窗格。 所有更改都会自动保存。
- 将边缘连接从提取 Oracle 数据连接器添加到获取 Oracle 数据任务。
添加边缘条件
通过边缘条件,您可以指定必须满足哪些条件才能控制集成,以传递到由该边缘连接的任务。现在您已添加和配置所需的任务,接下来可以添加边缘条件来定义集成流程。
以下边缘条件根据 location
集成变量控制集成流程:
- 使用以下边缘条件添加从 API 触发器到 Map to MySQL 任务的边缘连接:
$location$ = "US"
- 使用以下边缘条件添加从 API 触发器到 Map to Oracle 任务的另一个边缘连接:
$location$ = "APAC"
集成流程示例
下图显示了使用本教程创建的集成的示例布局。
发布集成
如需发布集成,请点击集成编辑器工具栏中的发布。
成功发布集成后,您可以查看和检查已发布集成的执行日志。如需查看日志,请点击查看此集成的执行日志。系统会显示执行日志页面。
测试集成
通过集成编辑器测试集成
如需通过集成编辑器测试集成,请执行以下步骤:
- 点击集成编辑器工具栏中的
此时将显示测试集成对话框。
Test。 - 系统会提示您为集成输入变量输入测试值。出于此测试的目的,请执行以下操作:
- customer_id::输入
1
。 - 位置:输入
APAC
。
- customer_id::输入
- 点击测试集成。
集成已成功执行,并显示以下客户价值:
{ "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 中创建的连接。