适用于 Azure Database for MySQL 单一服务器的 Azure Pipelines
适用于: Azure Database for MySQL - 单一服务器
通过 Azure Pipelines 部署数据库更新即可开始使用 Azure Database for MySQL。 利用 Azure Pipelines,可以使用 Azure DevOps 通过持续集成 (CI) 和持续交付 (CD) 来进行生成、测试和部署。
我们将使用 Azure Database for MySQL 部署任务。 Azure Database for MySQL 部署任务仅适用于 Azure Database for MySQL 单一服务器。
先决条件
开始前,需要具备:
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 一个有效的 Azure DevOps 组织。 注册 Azure Pipelines。
- 可用于管道的 GitHub 存储库。 如果没有现有存储库,请参阅创建第一个管道。
此快速入门使用以下任意指南中创建的资源作为起点:
创建管道
你将使用基本的初学者管道作为管道的基础。
登录到你的 Azure DevOps 组织,并转到你的项目。
在项目中,导航到“Pipelines”页面 。 然后选择“操作”以创建新的管道。
首先选择“GitHub”作为源代码位置,完成向导的各个步骤 。
可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。
显示存储库列表时,选择你的所需存储库。
Azure Pipelines 会分析存储库并提供配置选项。 选择“初学者管道”。
创建机密
你需要知道与 Azure Database for MySQL 部署任务配合使用的数据库服务器名称、SQL 用户名和 SQL 密码。
为了安全起见,需要在管道的管道设置 UI 中将 SQL 密码另存为机密变量。
- 转到“管道”页,选择适当的管道,然后选择“编辑”。
- 选择“变量”。
- 添加一个名为
SQLpass
的新变量,然后选择“保留此值机密”以加密并保存变量。 - 选择“确定”和“保存”以添加变量。
验证数据库的权限
若要使用 Azure Pipelines 访问 MySQL 数据库,需要将数据库设置为接受来自所有 Azure 资源的连接。
- 在 Azure 门户中,打开数据库资源。
- 选择“连接安全性”。
- 将“允许访问 Azure 服务”切换为“是”。
添加 Azure Database for MySQL 部署任务
在此示例中,我们将创建一个名为 quickstartdb
的新数据库并添加一个清单表。 内联 SQL 脚本会执行以下操作:
- 如果
quickstartdb
存在,请将其删除,并创建新的quickstartdb
数据库。 - 如果
inventory
表存在,请将其删除,并创建新的inventory
表。 - 将三行插入
inventory
。 - 显示所有行。
- 更新
inventory
中的第一行的值。 - 删除
inventory
中的第二行。
需要替换部署任务中的以下值。
输入 | 说明 | 示例 |
---|---|---|
azureSubscription |
使用服务连接向 Azure 订阅进行身份验证。 | My Subscription |
ServerName |
Azure Database for MySQL 服务器的名称。 | fabrikam.mysql.database.azure.com |
SqlUsername |
Azure Database for MySQL 的用户名。 | mysqladmin@fabrikam |
SqlPassword |
对应于用户名的密码。 应将其定义为机密变量。 | $(SQLpass) |
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: AzureMysqlDeployment@1
inputs:
azureSubscription: '<your-subscription>
ServerName: '<db>.mysql.database.azure.com'
SqlUsername: '<username>@<db>'
SqlPassword: '$(SQLpass)'
TaskNameSelector: 'InlineSqlTask'
SqlInline: |
DROP DATABASE IF EXISTS quickstartdb;
CREATE DATABASE quickstartdb;
USE quickstartdb;
-- Create a table and insert rows
DROP TABLE IF EXISTS inventory;
CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);
INSERT INTO inventory (name, quantity) VALUES ('banana', 150);
INSERT INTO inventory (name, quantity) VALUES ('orange', 154);
INSERT INTO inventory (name, quantity) VALUES ('apple', 100);
-- Read
SELECT * FROM inventory;
-- Update
UPDATE inventory SET quantity = 200 WHERE id = 1;
SELECT * FROM inventory;
-- Delete
DELETE FROM inventory WHERE id = 2;
SELECT * FROM inventory;
IpDetectionMethod: 'AutoDetect'
部署和验证资源
选择“保存并运行”以部署管道。 此时会启动管道作业。几分钟后,作业状态应指示“Success
”。
可以验证管道是否已在此管道运行的 AzureMysqlDeployment
任务中成功运行。
打开任务并验证最后两个条目是否显示 inventory
中的两行。 有两行是因为第二行已被删除。
清理资源
完成管道操作后,请在 Azure Database for MySQL 中删除 quickstartdb
。 还可以删除创建的部署管道。