使用 Azure CLI 创建和管理用于 Azure Database for MySQL - 灵活服务器的专用链接

适用于: Azure Database for MySQL - 灵活服务器

本文介绍如何使用 Azure CLI 创建专用终结点,以便从 VNet 中的 VM 访问 Azure Database for MySQL 灵活服务器。

本快速入门要求使用 Azure CLI 2.0 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

先决条件

必须使用 az login 命令登录帐户。 请注意 id 属性,该属性指的是 Azure 帐户的订阅 ID。

az login

使用 az account set 命令选择帐户下的特定订阅。 在该命令中,记下 az login 输出中的 id 值以用作 subscription 参数的值。 如果有多个订阅,请选择应计费的资源所在的相应订阅。 若要获取所有订阅,请使用 az account list

az account set --subscription <subscription id>

创建资源组

在创建任何资源之前,必须创建一个资源组以托管虚拟网络。 使用 az group create 创建资源组。 此示例在 chinanorth3 位置创建一个名为 myResourceGroup 的资源组:

az group create --name myResourceGroup --location chinanorth3

创建虚拟网络

使用 az network vnet create 创建虚拟网络。 此示例创建名为 myVirtualNetwork 的默认虚拟网络,它具有一个名为 mySubnet 的子网:

az network vnet create \
 --name myVirtualNetwork \
 --resource-group myResourceGroup \
 --subnet-name mySubnet

禁用子网专用终结点策略

Azure 会将资源部署到虚拟网络中的子网,因此,你需要创建或更新子网,以禁用专用终结点网络策略。 使用 az network vnet subnet update 更新名为 mySubnet 的子网配置:

az network vnet subnet update \
 --name mySubnet \
 --resource-group myResourceGroup \
 --vnet-name myVirtualNetwork \
 --disable-private-endpoint-network-policies true

创建 VM

使用 az vm create 创建 VM。 出现提示时,请提供要用作 VM 登录凭据的密码。 此示例创建名为 myVm 的 VM:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Win2019Datacenter

注意

记录 VM 的公共 IP 地址,因为下一步中从 Internet 进行连接需要用到它。

在资源组中创建启用公共访问的 Azure Database for MySQL 灵活服务器实例

创建启用公共访问的 Azure Database for MySQL 灵活服务器实例,并添加要对其具有访问权限的客户端 IP 地址。

az mysql flexible-server create \
  --name mydemoserver \
  --resource-group myResourcegroup \
  --location chinanorth3 \
  --admin-user mylogin \
  --admin-password <server_admin_password> \
  --public-access <my_client_ip>

注意

在某些情况下,Azure Database for MySQL 灵活服务器实例和 VNet 子网位于不同的订阅中。 在这些情况下,必须确保以下配置:

  • 确保两个订阅都注册了 Microsoft.DBforMySQL/flexibleServer 资源提供程序。 有关详细信息,请参阅资源管理器注册

创建专用终结点

在虚拟网络中为 Azure Database for MySQL 灵活服务器创建专用终结点:

az network private-endpoint create \
    --name myPrivateEndpoint \
    --resource-group myResourceGroup \
    --vnet-name myVirtualNetwork  \
    --subnet mySubnet \
    --private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforMySQL/flexibleServers" --query "id" -o tsv) \
    --group-id mysqlServer \
    --connection-name myConnection \
    --location location

配置专用 DNS 区域

为 Azure Database for MySQL 灵活服务器域创建专用 DNS 区域,并创建一个与虚拟网络关联的链接。

az network private-dns zone create --resource-group myResourceGroup \
   --name  "privatelink.mysql.database.chinacloudapi.cn"
az network private-dns link vnet create --resource-group myResourceGroup \
   --zone-name  "privatelink.mysql.database.chinacloudapi.cn"\
   --name MyDNSLink \
   --virtual-network myVirtualNetwork \
   --registration-enabled false

# Query for the network interface ID
$networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)

az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the MySQL flexible server name

# Create DNS records
az network private-dns record-set a create --name myserver --zone-name privatelink.mysql.database.chinacloudapi.cn --resource-group myResourceGroup
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.mysql.database.chinacloudapi.cn --resource-group myResourceGroup -a <Private IP Address>

注意

客户 DNS 设置中的 FQDN 未解析已配置的专用 IP。 你必须为已配置的 FQDN 设置一个 DNS 区域,如此处所示。

从 Internet 连接到 VM

从 Internet 连接到 VM myVm,如下所示:

  1. 在门户的搜索栏中,输入 myVm

  2. 选择“连接”按钮。 选择“连接”按钮后,“连接到虚拟机”随即打开

  3. 选择“下载 RDP 文件”。 Azure 会创建远程桌面协议 ( .rdp) 文件,并将其下载到计算机。

  4. 打开 downloaded.rdp 文件。

    1. 出现提示时,选择“连接”。

。 输入在创建 VM 时指定的用户名和密码。 > [!注意] > 你可能需要选择“更多选择”>“使用其他帐户”,以指定你在创建 VM 时输入的凭据。

  1. 选择“确定”

  2. 你可能会在登录过程中收到证书警告。 如果收到证书警告,请选择“确定”或“继续”。

  3. VM 桌面出现后,将其最小化以返回到本地桌面。

从 VM 私下访问 Azure Database for MySQL 灵活服务器实例

  1. myVM 的远程桌面中,打开 PowerShell。

  2. 输入 nslookup mydemomysqlserver.privatelink.mysql.database.chinacloudapi.cn

    将收到类似于下面的消息:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.chinacloudapi.cn
    Address:  10.1.3.4
    
  3. 使用任何可用的客户端测试 Azure Database for MySQL 灵活服务器实例的专用链接连接。 以下示例使用 MySQL Workbench 来执行该操作。

  4. 在“新建连接”中,输入或选择以下信息:

    设置
    连接名称 选择所选的连接名称。
    主机名 选择“mydemoserver.privatelink.mysql.database.chinacloudapi.cn”
    用户名 输入在创建 Azure Database for MySQL 灵活服务器实例期间提供的 username@servername 形式的用户名
    密码 输入在创建 Azure Database for MySQL 灵活服务器实例期间提供的密码。
  5. 选择“连接” 。

  6. 浏览左侧菜单中的数据库。

  7. (可选)从 Azure Database for MySQL 灵活服务器数据库创建或查询信息。

  8. 关闭与 myVm 的远程桌面连接。

清理资源

如果不再需要资源组及其所有资源,可以使用 az group delete 将其删除:

az group delete --name myResourceGroup --yes

列出专用可链接子资源 (groupId)

az network private-link-resource list --id {PrivateLinkResourceID}  // or -g MyResourceGroup -n MySA --type Microsoft.Storage/storageAccounts

列出给定资源上的专用终结点连接

az network private-endpoint-connection list --id {PrivateLinkResourceID}

批准给定资源上的专用终结点连接

az network private-endpoint-connection approve --id {PrivateEndpointConnectionID}  --description "Approved!"

拒绝给定资源上的专用终结点连接

az network private-endpoint-connection reject --id {PrivateEndpointConnectionID}  --description "Rejected!"

删除给定资源上的专用终结点连接

az network private-endpoint-connection delete --id {PrivateEndpointConnectionID}

后续步骤