本文是App service 连接 Azure database for MySQL系列文章的一部分,全部的文章请参见: 

  1. (视频)Azure App Service Connect To Azure database for MySQL -资源准备
  2. (视频)Azure App Service Connect To Azure database for MySQL (1)- Firewall and IP Range
  3. (视频)Azure App Service Connect To Azure database for MySQL (2)- VNET and Service endpoint
  4. (视频)Azure App Service Connect To Azure database for MySQL (3)- VNET and Private Endpoint

 

本文介绍:

Azure App service 安全连接到Azure database for MySQL(1)通过公共网络/防火墙和IP白名单

 

本案例示意图如下:

 

重点配置为:

Deny  Public network access=No

Allow access to Azure Services=No

Add app service all Outbound IPs

 


 

视频演示:

 


 

图文步骤:

 

1.创建Azure app service

2.创建Azure database for MySQL

3.配置Azure database for MySQL 防火墙

4.测试App service 到MySQL的连接

 

1.创建App Service:

本例中创建了配置如下的app service

Runtime: .Net core3.1

OS: Windows

Region: East Asia

SKU: S1 

App service Plan: new service plan

 

2.创建Azure database for MySQL

本例中创建了如下的MySQL资源:

Region:East Asia

Version:5.7

Compute+Storage:  2vCores, 100GB, 仅仅为了降低测试成本,保持默认的4vCores不影响本例测试结果。

 

 

3.配置Azure database for MySQL 防火墙

 

找到App service 的outbound IP清单,注意 App Service sku 变更时,IP可能发生变化:

App Service 属性页面,找到outbound IP

 

将IP地址全部添加到MySQL白名单中:

 

4.测试App service 到MySQL的连接

 

下载示例的.Net Core的测试程序,下载链接:https://github.com/sean8544/web_api_for_app_service_test_mysql_connect

使用VS Code 部署.Net Core App Service,具体步骤请参见视频,

ctrl+shift+p,选择 Azure App Service:Deploy to web app

选择提前创建好的App Service:

通过 get请求的url参数向app service 传递mysql的连接信息:

其中路径为:

https://app service的url/mysql?servername=mysql server的name&dbname=待测试的数据库的名称,默认可以填写mysql&userid=mysql的用户名&userpsw=mysql的密码

 

 

刷新页面,测试结果如下,提示连接成功: