• 如需在本地运行 CLI 参考命令,请 安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅 如何在 Docker 容器中运行 Azure CLI

  • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 登录

  • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅 使用 Azure CLI 的扩展

  • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

  • 本操作指南文章需要 2.31.0 版或更高版本的 Azure CLI。 如果使用 Azure Cloud Shell,则最新版本已安装。

  • Azure PowerShell(本地安装)或 Azure Cloud Shell。

  • 登录到 Azure PowerShell,并确保已选择要使用此功能的订阅。 有关详细信息,请参阅 使用 Azure PowerShell 登录

  • 请确保 Az.Network 模块是 4.3.0 或更高版本。 若要验证已安装的模块,请使用命令 Get-InstalledModule -Name "Az.Network" 。 如果模块需要更新,必要时请使用命令 Update-Module -Name Az.Network

    如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az 查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module (安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount 以创建与 Azure 的连接。

    创建虚拟网络

    在本部分中,将创建一个虚拟网络和子网,稍后将其委托给 Azure 服务。

    PowerShell Azure CLI

    创建资源组

    使用 New-AzResourceGroup 创建资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

    以下示例在“eastus2”位置创建名为“myResourceGroup”的资源组:

    $rg = @{
        Name = 'myResourceGroup'
        Location = 'eastus2'
    New-AzResourceGroup @rg
    

    创建虚拟网络

    使用 New-AzVirtualNetworkmyResourceGroup 中创建名为 myVnet 的虚拟网络,并使用 New-AzVirtualNetworkSubnetConfig 创建名为 mySubnet 的子网。

    虚拟网络的 IP 地址空间为 10.1.0.0/16。 虚拟网络中的子网为 10.1.0.0/24。

    $sub = @{
        Name = 'mySubnet'
        AddressPrefix = '10.1.0.0/24'
    $subnet = New-AzVirtualNetworkSubnetConfig @sub
    $net = @{
        Name = 'myVNet'
        ResourceGroupName = 'myResourceGroup'
        Location = 'eastus2'
        AddressPrefix = '10.1.0.0/16'
        Subnet = $subnet
    New-AzVirtualNetwork @net
    

    创建资源组

    使用 az group create 创建资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

    以下示例在“eastu2”位置创建名为“myResourceGroup”的资源组:

    az group create \
        --name myResourceGroup \
        --location eastus2
    

    创建虚拟网络

    使用 az network vnet createmyResourceGroup 中创建名为 myVnet 的虚拟网络,该虚拟网络包含名为 mySubnet 的子网。

    az network vnet create \
        --resource-group myResourceGroup \
        --location eastus2 \
        --name myVNet \
        --address-prefix 10.1.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 10.1.0.0/24
    

    将子网委托给 Azure 服务

    在此部分,我们将上一部分创建的子网委托给 Azure 服务。

    PowerShell Azure CLI

    请使用 Add-AzDelegation 通过名为 myDelegation 的委托(委托到 Azure 服务)对名为 mySubnet 的子网进行更新。 在此示例中,Microsoft.Sql/managedInstances 用于示例委托:

    $net = @{
        Name = 'myVNet'
        ResourceGroupName = 'myResourceGroup'
    $vnet = Get-AzVirtualNetwork @net
    $sub = @{
        Name = 'mySubnet'
        VirtualNetwork = $vnet
    $subnet = Get-AzVirtualNetworkSubnetConfig @sub
    $del = @{
        Name = 'myDelegation'
        ServiceName = 'Microsoft.Sql/managedInstances'
        Subnet = $subnet
    $subnet = Add-AzDelegation @del
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    

    使用 Get-AzDelegation 验证委托:

    $sub = @{
        Name = 'myVNet'
        ResourceGroupName = 'myResourceGroup'
    $subnet = Get-AzVirtualNetwork @sub | Get-AzVirtualNetworkSubnetConfig -Name 'mySubnet'
    $dg = @{
        Name ='myDelegation'
        Subnet = $subnet
    Get-AzDelegation @dg
    
      ProvisioningState : Succeeded
      ServiceName       : Microsoft.Sql/managedInstances
      Actions           : {Microsoft.Network/virtualNetworks/subnets/join/action}
      Name              : myDelegation
      Etag              : W/"9cba4b0e-2ceb-444b-b553-454f8da07d8a"
      Id                : /subscriptions/3bf09329-ca61-4fee-88cb-7e30b9ee305b/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet/delegations/myDelegation
    

    使用 az network vnet subnet update,使用 Azure 服务的委派更新名为 mySubnet 的子网。 在此示例中,Microsoft.Sql/managedInstances 用于示例委托:

    az network vnet subnet update \
        --resource-group myResourceGroup \
        --name mySubnet \
        --vnet-name myVNet \
        --delegations Microsoft.Sql/managedInstances
    

    若要验证委派是否已应用,请使用 az network vnet subnet show。 在 serviceName 属性中验证是否已将服务委托给子网:

    az network vnet subnet show \
        --resource-group myResourceGroup \
        --name mySubnet \
        --vnet-name myVNet \
        --query delegations
        "actions": [
          "Microsoft.Network/virtualNetworks/subnets/join/action",
          "Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action",
          "Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action"
        "etag": "W/\"30184721-8945-4e4f-9cc3-aa16b26589ac\"",
        "id": "/subscriptions/23250d6d-28f0-41dd-9776-61fc80805b6e/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet/delegations/0",
        "name": "0",
        "provisioningState": "Succeeded",
        "resourceGroup": "myResourceGroup",
        "serviceName": "Microsoft.Sql/managedInstances",
        "type": "Microsoft.Network/virtualNetworks/subnets/delegations"
    

    从 Azure 服务中删除子网委托

    在本部分中,你将删除 Azure 服务的子网委托。

    PowerShell Azure CLI ResourceGroupName = 'myResourceGroup' $subnet = Get-AzVirtualNetwork @sub | Get-AzVirtualNetworkSubnetConfig -Name 'mySubnet' $dg = @{ Name ='myDelegation' Subnet = $subnet Get-AzDelegation @dg
    Get-AzDelegation: Sequence contains no matching element
    

    使用 az network vnet subnet update 从名为 mySubnet 的子网中删除委派:

    az network vnet subnet update \
        --resource-group myResourceGroup \
        --name mySubnet \
        --vnet-name myVNet \
        --remove delegations
    

    若要验证委派是否已删除,请使用 az network vnet subnet show。 在 serviceName 属性中验证是否已将服务从子网中删除:

    az network vnet subnet show \
        --resource-group myResourceGroup \
        --name mySubnet \
        --vnet-name myVNet \
        --query delegations
    

    命令输出为空括号:

    不再需要资源组时,可将资源组及其包含的所有资源一并删除:

  • 在 Azure 门户顶部的“搜索”框中输入“myResourceGroup”。 当在搜索结果中看到“myResourceGroup”时,将其选中。

  • 选择“删除资源组”。

  • 对于“键入资源组名称:”,输入“myResourceGroup”,然后选择“删除”。

  • 了解如何在 Azure 中管理子网
  •