Povolení integrace virtuální sítě v Azure App Service
Díky integraci s virtuální sítí Azure z aplikace Azure App Service můžete z vaší aplikace přistupovat k privátním prostředkům v rámci virtuální sítě.
Požadavky
Funkce integrace virtuální sítě vyžaduje:
- Cenová úroveň App Service, která podporuje integraci virtuální sítě.
- Virtuální síť ve stejné oblasti s prázdnou podsítí.
Podsíť musí být delegovaná na Microsoft.Web/serverFarms. Pokud delegování není provedeno před integrací, proces zřizování toto delegování nakonfiguruje. Podsíti musí být přidělen blok IPv4 /28
(16 adres). Pro maximální horizontální škálování doporučujeme mít minimálně 64 adres (blok IPv4 /26
).
Pokud je virtuální síť v jiném předplatném než aplikace, musíte zajistit, aby předplatné s virtuální sítí bylo zaregistrované pro Microsoft.Web
poskytovatele prostředků. Poskytovatele můžete explicitně zaregistrovat podle této dokumentace, ale automaticky se zaregistruje při vytváření první webové aplikace v předplatném.
Konfigurace v Azure Portal
Na portálu App Service přejděte na Sítě. V části Konfigurace odchozího provozu vyberte Integrace virtuální sítě.
Vyberte Přidat integraci virtuální sítě.
Rozevírací seznam obsahuje všechny virtuální sítě ve vašem předplatném ve stejné oblasti. Vyberte prázdnou existující podsíť nebo vytvořte novou podsíť.
Během integrace se aplikace restartuje. Po dokončení integrace se zobrazí podrobnosti o virtuální síti, se kterou jste integrováni.
Konfigurace pomocí Azure CLI
Integraci virtuální sítě můžete nakonfigurovat také pomocí Azure CLI:
az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>
Poznámka
Příkaz zkontroluje, jestli je podsíť delegovaná na Microsoft.Web/serverFarms, a pokud není nakonfigurovaná, použije potřebné delegování. Pokud byla podsíť nakonfigurovaná a nemáte oprávnění ji zkontrolovat nebo pokud je virtuální síť v jiném předplatném, můžete ověření obejít pomocí parametru --skip-delegation-check
.
Konfigurace s Azure PowerShell
Příprava parametrů
$siteName = '<app-name>'
$vNetResourceGroupName = '<group-name>'
$webAppResourceGroupName = '<group-name>'
$vNetName = '<vnet-name>'
$integrationSubnetName = '<subnet-name>'
$vNetSubscriptionId = '<subscription-guid>'
Poznámka
Pokud je virtuální síť v jiném předplatném než webová aplikace, můžete k nastavení aktuálního kontextu předplatného použít příkaz Set-AzContext -Subscription xxxx-xxxx-xxxx. Nastavte kontext aktuálního předplatného na předplatné, ve kterém byla virtuální síť nasazená.
Zkontrolujte, jestli je podsíť delegovaná na Microsoft.Web/serverFarms.
$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
Get-AzDelegation -Subnet $subnet
Pokud vaše podsíť není delegovaná na Microsoft.Web/serverFarms, přidejte delegování pomocí následujících příkazů.
$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
Set-AzVirtualNetwork -VirtualNetwork $vnet
Konfigurace integrace virtuální sítě
Poznámka
Pokud je webová aplikace v jiném předplatném než virtuální síť, můžete k nastavení aktuálního kontextu předplatného použít příkaz Set-AzContext -Subscription xxxx-xxxx-xxxx. Nastavte kontext aktuálního předplatného na předplatné, ve kterém byla webová aplikace nasazená.
$subnetResourceId = "/subscriptions/$vNetSubscriptionId/resourceGroups/$vNetResourceGroupName/providers/Microsoft.Network/virtualNetworks/$vNetName/subnets/$integrationSubnetName"
$webApp = Get-AzResource -ResourceType Microsoft.Web/sites -ResourceGroupName $webAppResourceGroupName -ResourceName $siteName
$webApp.Properties.virtualNetworkSubnetId = $subnetResourceId
$webApp.Properties.vnetRouteAllEnabled = 'true'
$webApp | Set-AzResource -Force