本文是App service 连接 Azure database for MySQL系列文章的一部分,全部的文章请参见:
- (视频)Azure App Service Connect To Azure database for MySQL -资源准备
- (视频)Azure App Service Connect To Azure database for MySQL (1)- Firewall and IP Range
- (视频)Azure App Service Connect To Azure database for MySQL (2)- VNET and Service endpoint
- (视频)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的密码
刷新页面,测试结果如下,提示连接成功: