本文是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的第三种方式:mysql private endpoint 和vnet

本案例是介绍的App service 连接mysql的方式中,唯一将deny public network access 设置为 yes的案例。

 

本案例示意图:

 

本案例重点配置:

Deny  Public network access=Yes

MySQL: Add private endpoint and private dns zone

App Service: Connect to VNET

(1)connect MySQL through internal private IP

或者

(2)connect MySQL server after config app service DNS setting

 

 

 

 

视频介绍:

 

 

图文介绍:

本案例步骤:

1.准备资源

2.MySQL 配置private endpoint

3.App service 加入VNET中并配置DNS

4.测试App Service 到MySQL的连接

 

1.准备资源

请参照文章《http://www.51azure.cloud/post/2020/9/4/azure-app-service-connect-to-azure-database-for-mysql-create-resources

2.MySQL 配置private endpoint

请参照文章《https://www.51azure.cloud/post/2020/9/1/azure-database-for-mysql-connection-security-3-private-endpoint

3.App service 加入VNET中

本例中,在上一讲《》中,app service 已经连接到了子网subnet-01-mysql中,本例可以保留上一讲的连接,也可以修改。

对App service 配置dns:

在App service 与 VNet 集成后,它将使用与 VNet 相同的 DNS 服务器。 默认情况下,你的应用程序将不能使用 Azure DNS 专用区域。 若要使用 Azure DNS 专用区域需要添加以下应用设置:
     

      1. Name: WEBSITE_DNS_SERVER, Value: 168.63.129.16 

      2.Name: WEBSITE_VNET_ROUTE_ALL, Value: 1

Ref: https://docs.microsoft.com/zh-cn/azure/app-service/web-sites-integrate-with-vnet#azure-dns-private-zones

 

 

 

 

4.测试App Service 到MySQL的连接

测试用的app service 源码:https://github.com/sean8544/web_api_for_app_service_test_mysql_connect

测试(1)使用private ip 连接:在private endpoint页面找到private ip

 

测试(2)使用private fqdn 连接:

完整的连接由两部分构成:app-connect-test.privatelink.mysql.database.azure.com

 

如下图连接成功: