概览
在本教程中,您将创建与 API 触发器的集成,该触发器接收用于检索客户信息的 API 请求。根据 API 请求位置,集成会从 MySQL 数据库或 Oracle 数据库检索客户详细信息。
目标
本教程介绍了如何在集成中完成以下任务:
- 添加 API 触发器。
- 为 MySQL 和 Oracle 连接添加和配置连接器任务。
- 添加和配置数据映射任务,以提取和映射 API 载荷。
费用
在本教程中,您将使用 Google Cloud 的以下付费组件:
本教程中的说明旨在确保您的资源使用量保持在 Google Cloud 的 “始终免费”层级的限额范围内。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
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. - Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
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. - Click Continue.
-
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 数据库连接器。
创建集成
如需创建新的集成,请执行以下步骤:
- 在 Google Cloud 控制台中,前往 Application Integration 页面。
- 在导航菜单中,点击集成。系统随即会显示集成页面。
- 点击
- 集成名称:输入
api_fulfilment
。 - 说明:输入
Demo integration created for tutorial
。 - 区域:从支持的区域列表中选择
us-central1
。 - 点击创建以打开集成编辑器。
创建集成,然后在创建集成页面中提供以下详细信息:
- 集成名称:输入
设置集成触发器
成功创建集成后,您可以添加和配置集成触发器,以便针对识别到的事件调用集成。
在本教程中,API 触发器用于为每个新的 API 请求调用集成。如需在 api_fulfilment
集成中添加和配置 API 触发器,请执行以下操作:
- 在集成编辑器中,点击触发器以显示可用触发器列表。
- 点击 API 触发器元素,并将其放入集成编辑器中。
应用集成会自动填充触发器标签、触发器名称和触发器 ID。触发器 ID 是机器生成的 ID,格式为
api_trigger/TRIGGER_NAME
,用于 API 请求。
此触发器无需进一步配置。
创建集成变量
集成变量类似于编程语言中使用的变量。在集成执行过程中,可以读取和写入变量中的数据。如需创建本教程所需的变量,请执行以下操作:
- 点击设计器导航栏中的 (切换面板)以显示变量窗格。
- 点击 + 创建并创建以下集成变量:
变量名称 数据类型 变量类型 location
STRING
输入到集成 customer_id
STRING
输入到集成 customer_record
JSON
集成的输出
从 MySQL 数据库中检索客户数据
如果 Ingress API 请求来自 US
位置,请执行以下操作,从 MySQL 数据库中检索客户数据。
连接到 MySQL 数据库
请执行以下步骤来添加和配置连接器任务,以从 MySQL Customers 表中检索客户详细信息:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 选择设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Fetch MySQL Data
。
,然后将连接器标签重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择客户,然后选择Get 作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
将客户 ID 映射到 MySQL 连接器
数据映射任务用于将客户 ID 映射到 MySQL 连接器。如需在集成中添加和配置数据映射,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 选择设计器上的数据映射元素以查看任务配置窗格。
- 点击
Map to MySQL
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
借助数据映射编辑器,您可以使用可用的转换函数将输入变量映射为所需的输出变量。然后,输出可用作任何其他集成任务或触发器的变量。如需详细了解 映射变量,请参阅添加映射。
- 将触发器 -
customer_id
- 集成变量映射到自动生成的连接器 -entityId(Fetch MySQL Data)
- 输入变量。映射完成后,关闭窗格。 所有更改都将自动保存。
- 从“映射到 MySQL”任务到“提取 MySQL 数据”连接器添加边缘连接。
检索 MySQL 客户详细信息
如需从 MySQL 连接器检索客户详细信息,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 点击设计器上的数据映射元素,以查看任务配置窗格。
- 点击
Get MySQL data
。
,然后将数据映射任务重命名为 - 点击 Open Data Mapping Editor。
- 将 MySQL
connectorOutputPayload (Fetch MySQL Data)
输出变量映射到customer_record
集成变量。映射完成后,关闭窗格。 系统会自动保存所有更改。
- 在“获取 MySQL 数据”任务中,从“获取 MySQL 数据”连接器中添加边缘连接。
从 Oracle 数据库检索客户数据
如果 Ingress API 请求来自 APAC
位置,请执行以下操作,从 Oracle 数据库检索客户数据。
连接到 Oracle 数据库
请执行以下步骤,添加并配置连接器任务,以从 Oracle Customers 表中检索客户详细信息:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 在设计器上选择连接器任务元素,以查看连接器任务 配置窗格。
- 点击
Fetch Oracle Data
。
,然后将连接器标签重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择客户,然后选择Get 作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
将客户 ID 映射到 Oracle 连接器
如需在集成中添加和配置数据映射,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 在设计器上选择数据映射元素,以查看任务配置窗格。
- 点击
Map to Oracle
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
- 将触发器 -
customer_id
- 集成变量映射到自动生成的连接器 -entityId(Fetch Oracle Data)
- 输入变量。映射完成后,关闭窗格。 所有更改都将自动保存。
- 将“映射到 Oracle”任务中的边缘连接添加到“提取 Oracle 数据”连接器。
检索 Oracle 客户详细信息
要从 Oracle 连接器检索客户详细信息,请执行以下操作:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 点击设计器上的数据映射元素以查看任务配置窗格。
- 点击
Get Oracle data
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
- 将 Oracle
connectorOutputPayload (Fetch Oracle Data)
输出变量映射到customer_record
集成变量。映射完成后,关闭窗格。 系统会自动保存所有更改。
- 将“获取 Oracle 数据”连接器中的边缘连接添加到“获取 Oracle 数据”任务。
添加边缘条件
通过边缘条件,您可以指定必须满足哪些条件,才能控制要传递给通过边缘连接的任务的集成。现在,您已经添加并配置了所需任务,接下来可以添加边缘条件来定义集成流程。
以下边缘条件会根据 location
集成变量控制集成流程:
- 使用以下边缘条件添加从 API 触发器到映射到 MySQL 任务的边缘连接:
$location$ = "US"
- 使用以下边缘条件将另一个从 API 触发器添加到 Map to Oracle 任务的边缘连接:
$location$ = "APAC"
集成流程示例
下图显示了使用本教程创建的集成的示例布局。
发布集成
要发布集成,请点击集成编辑器工具栏中的发布。
成功发布集成后,您可以查看和检查已发布集成的执行日志。如需查看日志,请点击 查看此集成的执行日志。随即会出现执行日志页面。
测试集成
通过集成编辑器测试集成
如需通过集成编辑器测试集成,请执行以下步骤:
- 点击集成编辑器工具栏中的
此时会显示测试集成窗格。
Test。 - 系统会提示您为集成输入变量输入测试值。为进行此测试,请执行以下操作:
- customer_id:输入
1
。 - location:输入
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 账号产生费用,请取消发布集成,并删除在集成连接器中创建的关联。