本教程介绍如何从示例集成连接到 MySQL 数据库实例,以及如何对 MySQL 数据库表执行 list、get、create、update 和 delete 操作。
准备工作
- 确保您有权访问 Application Integration。
-
选择 Google Cloud 项目并执行以下任务:
- 将以下角色授予您要用于创建连接的服务账号:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
- 启用以下服务:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
如果之前没有为您的项目启用这些服务,则在创建连接时系统会提示您启用。
- 将以下角色授予您要用于创建连接的服务账号:
- 确保您有权访问可用于创建数据库的 MySQL 服务器。如需所有受支持的连接器和受支持版本的列表,请参阅连接器参考。
在 MySQL 中创建数据库和表
从安装了 MySQL 客户端的系统运行以下命令:-
连接到 MySQL 服务器:
mysql --host=MYSQL_HOSTNAME_OR_IP_ADDRESS --port=PORT_NUMBER -uUSERNAME -pPASSWORD
替换以下内容:-
MYSQL_HOSTNAME_OR_IP_ADDRESS
:MySQL 服务器的名称或 IP 地址。 -
PORT_NUMBER
:MySQL 服务器的端口号。 -
USERNAME
:MySQL 服务器的用户名。 -
PASSWORD
:MySQL 服务器的用户密码。
-
-
创建 MySQL 数据库:
CREATE DATABASE tutorialDB;
-
创建表:
CREATE TABLE EMPLOYEE ( employee_id int auto_increment primary key, employee_first_name varchar(500) NOT null, employee_last_name varchar(500) NOT null, employee_emailID varchar(500) );
-
将行添加到您创建的
EMPLOYEE
表中:INSERT INTO EMPLOYEE (employee_first_name,employee_last_name,employee_emailID) values ("Peter","Dilliard","test-01@test.com"); INSERT INTO EMPLOYEE (employee_first_name,employee_last_name,employee_emailID) values ("Meaghan","Webb","test-02@test.com");
- 验证表是否已创建以及是否已添加行:
SELECT * FROM EMPLOYEE;
显示以下表行:+-------------+---------------------+--------------------+------------------+ | employee_id | employee_first_name | employee_last_name | employee_emailID | +-------------+---------------------+--------------------+------------------+ | 1 | Peter | Dilliard | test-01@test.com | | 2 | Meaghan | Webb | test-02@test.com | +-------------+---------------------+--------------------+------------------+
创建 MySQL 连接
若要使集成能够连接到 MySQL 数据库,请创建与 MySQL 数据库的新连接:
- 点击 + 新建以打开创建连接页面。
- 在位置部分中,选择连接的位置。
- 从区域列表中,选择要在其中创建连接的区域。
如需查看所有受支持区域的列表,请参阅位置。
- 点击下一步。
- 从区域列表中,选择要在其中创建连接的区域。
- 在连接详情部分中,输入以下详细信息:
- 从连接器列表中,选择 MySQL(预览版)。
- 从连接器版本列表中,选择连接器版本。
- 在连接名称字段中,输入连接实例的名称。
连接名称必须符合以下条件:
- 请使用字母、数字或连字符。
- 字母必须小写。
- 名称必须以字母开头,以字母或数字结尾。
- 名称不能超过 63 个字符。
- 可选:在说明字段中,添加连接实例的说明。
- 可选:启用 Cloud Logging。
- 从服务账号列表中,选择具有所需角色的服务账号。
- 在数据库名称字段中,输入 MySQL 数据库的名称。
- (可选)配置连接节点设置:
- 节点数下限:输入连接节点数下限。
- 节点数上限:输入连接节点数上限。
节点是处理事务的连接单元(或副本)。 连接处理越多事务就需要越多节点,相反,处理越少事务需要越少节点。 如需了解节点如何影响连接器价格,请参阅连接节点的价格。如果未输入任何值,则默认情况下,节点数下限设置为 2(以便提高可用性),节点数上限设置为 50。
- 使用代理:选中此复选框可为连接配置代理服务器并配置以下值:
-
代理身份验证方案:选择要通过代理服务器进行身份验证的身份验证类型。支持以下身份验证类型:
- 基本:基本 HTTP 身份验证。
- 摘要:摘要 HTTP 身份验证。
- 代理用户:用于向代理服务器进行身份验证的用户名。
- 代理密码:用户密码的 Secret Manager 密文。
-
代理 SSL 类型:连接到代理服务器时使用的 SSL 类型。支持以下身份验证类型:
- 自动:默认设置。如果网址是 HTTPS 网址,则使用“隧道”选项。如果网址是 HTTP 网址,则使用“永不”选项。
- 始终:连接始终启用 SSL。
- 永不:连接未启用 SSL。
- 隧道:连接通过隧道代理建立。代理服务器会打开与远程主机的连接,并且流量会流经该代理。
- 在代理服务器部分中,输入代理服务器的详细信息。
- 可选:如需向连接添加标签,请点击 + 添加标签。
- 点击下一步。
- 在目标部分中,输入要连接的远程主机(后端系统)的详细信息。
- 从目标类型列表中,选择一个主机地址。
- 从列表中选择主机地址,以指定目标的主机名或 IP 地址。
- 如果要与后端系统建立专用连接,请从列表中选择端点连接,然后从端点连接列表中选择所需的端点连接。
如果要与后端系统建立公共连接以提高安全性,您可以考虑为连接配置静态出站 IP 地址,然后将防火墙规则配置为仅将特定静态 IP 地址列入许可名单。
若要输入其他目标,请点击 + 添加目标。
- 点击下一步。
- 从目标类型列表中,选择一个主机地址。
- 在身份验证部分中,您可以提供凭据:
- 在用户名字段中,输入用于连接的 MySQL 用户名。
- 在密码字段中,输入包含与 MySQL 用户名关联的密码的 Secret Manager 密文。
- 如果您之前创建过密文,但列表中不提供该密文,请选择手动输入密文。在按资源 ID 添加密文对话框中,从 Secret Manager 复制并粘贴资源 ID。
- 如需使用最新版本,请以
"projects/project-number/secrets/secret-name"
格式复制并粘贴父级密钥的资源 ID - 如需选择特定版本,请以
"projects/project-number/secrets/secret-name/versions/1"
格式复制并粘贴特定版本的资源 ID
如需添加密文,请点击添加密文。
- 如需使用最新版本,请以
- 如果您尚未创建用于 MySQL 的密文,请点击创建新密文。在创建密文对话框中,输入以下详细信息:
- 在名称字段中,输入密文名称。
- 在密文值字段中,输入密文的内容或上传包含相应密文的文件。
- 点击创建密文。
- 如果您之前创建过密文,但列表中不提供该密文,请选择手动输入密文。在按资源 ID 添加密文对话框中,从 Secret Manager 复制并粘贴资源 ID。
- 在密文版本列表中,从可用版本的下拉列表中选择密码密文的版本。
- 点击下一步。
- 在查看部分中,查看您的连接和身份验证详细信息。
- 点击创建。
配置身份验证
根据您要使用的身份验证输入详细信息。
-
用户名和密码
- 用户名:用于连接的 MySQL 用户名。
- 密码:包含与 MySQL 用户名关联的密码的 Secret Manager 密文。
配置集成以使用 MySQL 连接
如需使用在集成中创建的 MySQL 连接,您必须执行以下任务:
创建新的集成
- 在 Apigee 界面中,选择您的 Apigee 组织。
- 点击开发 > 集成。
- 点击创建集成。
- 在集成名称字段中,输入集成的名称。
- 可选:在说明字段中,输入说明。
- 从区域列表中,选择集成的区域。 区域列表仅列出在 Google Cloud 项目中预配的区域。如需预配新区域,请点击启用区域。如需了解如何预配新区域,请参阅启用新区域。
- 如需打开集成编辑器,请点击创建。
添加和配置 API 触发器
创建新集成后,您可以向集成添加和配置 API 触发器。请按以下步骤操作:
- 在集成编辑器工具栏中,点击触发器以显示可用触发器列表。
- 将 API 元素拖动至集成编辑器。
添加和配置连接器任务
如需配置连接器任务以列出 employee
表中的所有实体,请按照以下步骤操作:
- 在集成编辑器工具栏中,点击任务以显示可用任务列表。
- 将连接器元素拖动至集成编辑器。
- 点击设计器上的连接器任务元素,以打开连接器面板。
- 在连接器面板中,点击配置连接器。
在显示的连接器任务编辑器对话框中,按照以下步骤操作:
- 从区域列表中,选择您在其中创建了 MySQL 连接的连接区域。
- 从连接列表中,选择您创建的 MySQL 连接,然后点击下一步。
- 在类型部分中,选择实体,然后点击下一步。
- 在实体列表中,选择员工。
- 在操作列表中,选择 List,然后点击下一步。
- 若要完成连接配置并关闭对话框,请点击完成。
将 API 触发器元素连接到连接器任务元素
接下来,添加一个边缘连接,以将 API 触发器连接到连接器任务。边缘连接是集成中的任何两个元素之间的连接。如需了解边缘和边缘条件,请参阅边缘。
如需添加边缘连接,请按照以下步骤操作:
- 在 API 触发器元素的底部,点击分支控制点。
- 在连接器任务元素顶部的联接控制点处拖放边缘连接。
测试集成
如需测试集成,请按以下步骤操作:
- 在集成编辑器工具栏中,点击测试。
- 可选:更改执行截止时间(分钟)值,然后点击测试集成。
- 集成成功完成后,测试集成窗格将显示消息集成执行成功。如需查看日志,请点击查看日志。
- 展开响应参数部分。在连接器输出载荷中会显示以下输出:
[ { "employee_id": 1.0, "employee_first_name": "Peter", "employee_last_name": "Dilliard", "employee_emailID": "test-01@test.com" }, { "employee_id": 2.0, "employee_first_name": "Meaghan", "employee_last_name": "Webb", "employee_emailID": "test-02@test.com" } ]
对 MySQL 数据库表执行其他操作
在集成中配置连接器任务时,您可以选择以下任何一种操作:
- 列表
- 获取
- 创建
- 更新
- 删除
您已使用 List 操作查看 employee
表中的所有行。在本教程的以下几个部分中,您将使用 Get、Create、Update 和 Delete 操作向 employee
表中添加、修改或移除行。
从表中获取行
如果您知道要提取的行的实体 ID(或主键),请将该值作为输入提供给集成中的 Get 操作。Get 操作返回的详细信息与 List 操作返回的详细信息类似。但是,List 操作会提取与指定查询匹配的所有表行的详细信息,而 Get 操作仅提取与指定实体 ID 匹配的表行的详细信息。
请记住,尽管 List 操作默认返回表中的所有行,但 Get 操作需要实体 ID 作为搜索参数。因此,要使用 Get 操作,您必须知道要提取的行的实体 ID,或提供实体 ID 的默认值。
如需获取指定行的详细信息,请执行以下步骤以配置您之前创建的连接器任务:
- 在集成编辑器中,点击连接器任务元素以查看连接器配置窗格。
- 在连接器配置窗格中,点击配置连接器。
在显示的连接器任务编辑器对话框中,按照以下步骤操作:
- 在设置实体/操作部分的操作列表中,选择 Get。
- 点击完成。
- 在连接器配置窗格中,展开任务输入部分。之后,执行以下操作:
- 点击实体 ID。
- 在出现的修改变量对话框中,选择输入到集成。
- 点击保存
- 在集成编辑器工具栏中,点击测试。
- 可选:更改执行期限(分钟)值。
- 输入要提取详细信息的实体的实体 ID。例如
2
。 - 点击测试集成。
- 集成成功完成后,测试集成窗格将显示消息集成执行成功。如需查看日志,请点击查看日志。
- 展开响应参数部分。在连接器输出载荷中会显示以下输出:
[ { "employee_id": 2.0, "employee_first_name": "Meaghan", "employee_last_name": "Webb", "employee_emailID": "test-02@test.com" } ]
- 您可以验证此处显示的信息是否与 MySQL 表中相应行的信息匹配。如需在 MySQL 表中查看此信息,请从 MySQL 客户端执行以下命令:
SELECT * FROM employee WHERE employee_id=2;
会显示以下表行:+-------------+---------------------+--------------------+------------------+ | employee_id | employee_first_name | employee_last_name | employee_emailID | +-------------+---------------------+--------------------+------------------+ | 2 | Meaghan | Webb | test-02@test.com | +-------------+---------------------+--------------------+------------------+
向表添加行
借助 Create 操作,您可以在表中添加一行。使用 Create 操作时,您必须在连接器输入载荷中提供实体的所有值。
如需使用 Create 操作添加行,请执行以下步骤来配置您之前创建的连接器任务:
- 在集成编辑器中,点击连接器任务元素以查看连接器配置窗格。
- 在连接器配置窗格中,点击配置连接器。
在显示的连接器任务编辑器对话框中,按照以下步骤操作:
- 在设置实体/操作部分的操作列表中,选择 Create。
- 点击完成。
- 在连接器配置窗格中,展开任务输入部分。之后,执行以下操作:
- 点击实体 ID。
- 在出现的修改变量对话框中,选择输入到集成
- 点击保存。
- 在集成编辑器工具栏中,点击测试。
- 可选:更改执行期限(分钟)值。
- 输入要创建的实体的详细信息。例如,如需在
employee
表中添加新员工,请输入以下 JSON:{ "employee_first_name": "Mary", "employee_last_name": "Smith", "employee_emailID": "test-03@test.com" }
- 点击测试集成。
- 集成成功完成后,测试集成窗格将显示消息集成执行成功。如需查看日志,请点击查看日志。
- 展开响应参数部分。在连接器输出载荷中会显示以下输出:
{ "employee_first_name": "Mary", "employee_last_name": "Smith", "employee_emailID": "test-03@test.com" }
在连接器输出载荷下,实体 ID 显示为输出:{ "employee_id": 3.0 }
-
您可以验证 MySQL 表中是否已添加该行。如需在 MySQL 表中查看此信息,请从 MySQL 客户端执行以下命令:
SELECT * FROM employee;
会显示以下表行:+-------------+---------------------+--------------------+------------------+ | employee_id | employee_first_name | employee_last_name | employee_emailID | +-------------+---------------------+--------------------+------------------+ | 1 | Peter | Dilliard | test-01@test.com | | 2 | Meaghan | Webb | test-02@test.com | | 3 | Mary | Smith | test-03@test.com | +-------------+---------------------+--------------------+------------------+
更新表中的行
使用 Update 操作可更改表中的行值。例如,您可以使用此操作来更新 employee
表中员工的电子邮件 ID。如需指定要更新的实体,您可以像在 Get 操作中一样提供实体 ID。或者,您可以使用过滤条件子句参数来传递用于过滤表行的值。如果您要根据特定搜索条件在多个行中进行相同的更改,这将非常有用。
如需更新表行,请执行以下步骤以配置先前创建的连接器任务:
- 在集成编辑器中,点击连接器任务元素以查看连接器配置窗格。
- 在连接器配置窗格中,点击配置连接器。
在显示的连接器任务编辑器对话框中,按照以下步骤操作:
- 在设置实体/操作部分的操作列表中,选择 Update。
- 点击完成。
- 在连接器配置窗格中,展开任务输入部分。之后,执行以下操作:
- 点击过滤条件子句。
- 在出现的修改变量对话框中,选择输入到集成
- 点击保存。
- 在集成编辑器工具栏中,点击测试。
- 可选:更改执行期限(分钟)值。
- 输入据以过滤的条件。例如,如需查找电子邮件 ID 为
test-03@test.com
的员工,请输入:employee_emailID="test-03@test.com"
- 输入要更新的值。例如,如需更新
employee
表中当前电子邮件 ID 与过滤条件子句test-03@test.com
匹配的所有员工的电子邮件 ID,请输入以下 JSON:{ "employee_emailID": "msmith@test.com" }
- 点击测试集成。
- 集成成功完成后,测试集成窗格将显示消息集成执行成功。
如需验证实体是否已更新,请使用 Get 操作获取指定实体的详细信息。
- 您可以验证 MySQL 表中的行是否已更新。如需在 MySQL 表中查看此信息,请从 MySQL 客户端执行以下命令:
SELECT * FROM employee;
会显示以下表行:+-------------+---------------------+--------------------+------------------+ | employee_id | employee_first_name | employee_last_name | employee_emailID | +-------------+---------------------+--------------------+------------------+ | 1 | Peter | Dilliard | test-01@test.com | | 2 | Meaghan | Webb | test-02@test.com | | 3 | Mary | Smith | msmith@test.com | +-------------+---------------------+--------------------+------------------+
删除表中的行
您可以使用 Delete 操作删除一个或多个表行。提供实体 ID 或使用过滤条件子句指定要删除的行。请注意,如果您使用过滤条件子句指定要删除的行的条件,可以删除与给定过滤条件匹配的多行。如果只想删除某个特定行,请使用实体 ID。
如需使用实体 ID 删除表行,请执行以下步骤以配置之前创建的连接器任务:
- 在集成编辑器中,点击连接器任务元素以查看连接器配置窗格。
- 在连接器配置窗格中,点击配置连接器。
在显示的连接器任务编辑器对话框中,按照以下步骤操作:
- 在设置实体/操作部分的操作列表中,选择 Get。
- 点击完成。
- 在连接器配置窗格中,展开任务输入部分。之后,执行以下操作:
- 点击实体 ID。
- 在出现的修改变量对话框中,选择输入到集成
- 点击保存。
- 在集成编辑器工具栏中,点击测试。
- 可选:更改执行期限(分钟)值。
- 输入要提取详细信息的实体的实体 ID。例如
2
。 - 点击测试集成。
- 集成成功完成后,测试集成窗格将显示消息集成执行成功。
如需验证表行是否已删除,请使用 Get 操作获取删除的行的详细信息。此操作会返回指定实体 ID 的错误。
您还可以使用 List 操作,并视情况为删除的表行提供过滤条件子句。这将返回剩余的行列表,这可能是空列表。
例如,如果您删除了实体 ID 为 3 的表行,然后为 List 操作指定了过滤条件子句
employee_emailID="msmith@test.com"
或实体 ID 3,日志中的响应参数会显示[]
。 -
您可以验证 MySQL 表中的行是否已删除。如需在 MySQL 表中验证这一点,请从 MySQL 客户端执行以下命令:
SELECT * FROM employee;
会显示以下表行:+-------------+---------------------+--------------------+------------------+ | employee_id | employee_first_name | employee_last_name | employee_emailID | +-------------+---------------------+--------------------+------------------+ | 1 | Peter | Dilliard | test-01@test.com | | 2 | Meaghan | Webb | test-02@test.com | +-------------+---------------------+--------------------+------------------+
后续步骤
尝试构建与其他连接器的集成。如需查看所有支持的连接器列表,请参阅连接器参考文档。