Rychlý start: Vytvoření služby privátního propojení pomocí šablony ARM
Článek 04. 12. 2024
Přispěvatelé: 10
Váš názor
V tomto článku
Požadavky
Kontrola šablony
Nasazení šablony
Ověření nasazení
Vyčištění prostředků
Další kroky
Zobrazit ještě 2
V tomto rychlém startu pomocí šablony Azure Resource Manageru (šablona ARM) vytvoříte službu privátního propojení.
Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.
Tento rychlý start můžete dokončit také pomocí webu Azure Portal , Azure PowerShellu nebo Azure CLI .
Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure . Šablona se otevře na webu Azure Portal.
Potřebujete účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Tato šablona vytvoří službu privátního propojení.
Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure .
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#" ,
"contentVersion" : "1.0.0.0" ,
"metadata" : {
"_generator" : {
"name" : "bicep" ,
"version" : "0.5.6.12127" ,
"templateHash" : "4187161334981532249"
}
},
"parameters" : {
"vmAdminUsername" : {
"type" : "string" ,
"metadata" : {
"description" : "Username for the Virtual Machine."
}
},
"vmAdminPassword" : {
"type" : "secureString" ,
"metadata" : {
"description" : "Password for the Virtual Machine. The password must be at least 12 characters long and have lower case, upper characters, digit and a special character (Regex match)"
}
},
"vmSize" : {
"type" : "string" ,
"defaultValue" : "Standard_D2_v3" ,
"metadata" : {
"description" : "The size of the VM"
}
},
"location" : {
"type" : "string" ,
"defaultValue" : "[resourceGroup().location]" ,
"metadata" : {
"description" : "Location for all resources."
}
}
},
"variables" : {
"vnetName" : "myVirtualNetwork" ,
"vnetConsumerName" : "myPEVnet" ,
"vnetAddressPrefix" : "10.0.0.0/16" ,
"frontendSubnetPrefix" : "10.0.1.0/24" ,
"frontendSubnetName" : "frontendSubnet" ,
"backendSubnetPrefix" : "10.0.2.0/24" ,
"backendSubnetName" : "backendSubnet" ,
"consumerSubnetPrefix" : "10.0.0.0/24" ,
"consumerSubnetName" : "myPESubnet" ,
"loadbalancerName" : "myILB" ,
"backendPoolName" : "myBackEndPool" ,
"loadBalancerFrontEndIpConfigurationName" : "myFrontEnd" ,
"healthProbeName" : "myHealthProbe" ,
"privateEndpointName" : "myPrivateEndpoint" ,
"vmName" : "[take(format('myVm{0}', uniqueString(resourceGroup().id)), 15)]" ,
"networkInterfaceName" : "[format('{0}NetInt', variables('vmName'))]" ,
"vmConsumerName" : "[take(format('myConsumerVm{0}', uniqueString(resourceGroup().id)), 15)]" ,
"publicIpAddressConsumerName" : "[format('{0}PublicIP', variables('vmConsumerName'))]" ,
"networkInterfaceConsumerName" : "[format('{0}NetInt', variables('vmConsumerName'))]" ,
"osDiskType" : "StandardSSD_LRS" ,
"privatelinkServiceName" : "myPLS" ,
"loadbalancerId" : "[resourceId('Microsoft.Network/loadBalancers', variables('loadbalancerName'))]"
},
"resources" : [
{
"type" : "Microsoft.Network/virtualNetworks" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('vnetName')]" ,
"location" : "[parameters('location')]" ,
"properties" : {
"addressSpace" : {
"addressPrefixes" : [
"[variables('vnetAddressPrefix')]"
]
},
"subnets" : [
{
"name" : "[variables('frontendSubnetName')]" ,
"properties" : {
"addressPrefix" : "[variables('frontendSubnetPrefix')]" ,
"privateLinkServiceNetworkPolicies" : "Disabled"
}
},
{
"name" : "[variables('backendSubnetName')]" ,
"properties" : {
"addressPrefix" : "[variables('backendSubnetPrefix')]"
}
}
]
}
},
{
"type" : "Microsoft.Network/loadBalancers" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('loadbalancerName')]" ,
"location" : "[parameters('location')]" ,
"sku" : {
"name" : "Standard"
},
"properties" : {
"frontendIPConfigurations" : [
{
"name" : "[variables('loadBalancerFrontEndIpConfigurationName')]" ,
"properties" : {
"privateIPAllocationMethod" : "Dynamic" ,
"subnet" : {
"id" : "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'), variables('frontendSubnetName'))]"
}
}
}
],
"backendAddressPools" : [
{
"name" : "[variables('backendPoolName')]"
}
],
"inboundNatRules" : [
{
"name" : "RDP-VM0" ,
"properties" : {
"frontendIPConfiguration" : {
"id" : "[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', variables('loadbalancerName'), variables('loadBalancerFrontEndIpConfigurationName'))]"
},
"protocol" : "Tcp" ,
"frontendPort" : 3389 ,
"backendPort" : 3389 ,
"enableFloatingIP" : false
}
}
],
"loadBalancingRules" : [
{
"name" : "myHTTPRule" ,
"properties" : {
"frontendIPConfiguration" : {
"id" : "[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', variables('loadbalancerName'), variables('loadBalancerFrontEndIpConfigurationName'))]"
},
"backendAddressPool" : {
"id" : "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('loadbalancerName'), variables('backendPoolName'))]"
},
"probe" : {
"id" : "[resourceId('Microsoft.Network/loadBalancers/probes', variables('loadbalancerName'), variables('healthProbeName'))]"
},
"protocol" : "Tcp" ,
"frontendPort" : 80 ,
"backendPort" : 80 ,
"idleTimeoutInMinutes" : 15
}
}
],
"probes" : [
{
"properties" : {
"protocol" : "Tcp" ,
"port" : 80 ,
"intervalInSeconds" : 15 ,
"numberOfProbes" : 2
},
"name" : "[variables('healthProbeName')]"
}
]
},
"dependsOn" : [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
]
},
{
"type" : "Microsoft.Network/networkInterfaces" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('networkInterfaceName')]" ,
"location" : "[parameters('location')]" ,
"tags" : {
"displayName" : "[variables('networkInterfaceName')]"
},
"properties" : {
"ipConfigurations" : [
{
"name" : "ipConfig1" ,
"properties" : {
"privateIPAllocationMethod" : "Dynamic" ,
"subnet" : {
"id" : "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'), variables('backendSubnetName'))]"
},
"loadBalancerBackendAddressPools" : [
{
"id" : "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('loadbalancerName'), variables('backendPoolName'))]"
}
],
"loadBalancerInboundNatRules" : [
{
"id" : "[resourceId('Microsoft.Network/loadBalancers/inboundNatRules/', variables('loadbalancerName'), 'RDP-VM0')]"
}
]
}
}
]
},
"dependsOn" : [
"[resourceId('Microsoft.Network/loadBalancers', variables('loadbalancerName'))]"
]
},
{
"type" : "Microsoft.Compute/virtualMachines" ,
"apiVersion" : "2021-11-01" ,
"name" : "[variables('vmName')]" ,
"location" : "[parameters('location')]" ,
"tags" : {
"displayName" : "[variables('vmName')]"
},
"properties" : {
"hardwareProfile" : {
"vmSize" : "[parameters('vmSize')]"
},
"osProfile" : {
"computerName" : "[variables('vmName')]" ,
"adminUsername" : "[parameters('vmAdminUsername')]" ,
"adminPassword" : "[parameters('vmAdminPassword')]"
},
"storageProfile" : {
"imageReference" : {
"publisher" : "MicrosoftWindowsServer" ,
"offer" : "WindowsServer" ,
"sku" : "2019-Datacenter" ,
"version" : "latest"
},
"osDisk" : {
"name" : "[format('{0}OsDisk', variables('vmName'))]" ,
"caching" : "ReadWrite" ,
"createOption" : "FromImage" ,
"managedDisk" : {
"storageAccountType" : "[variables('osDiskType')]"
},
"diskSizeGB" : 128
}
},
"networkProfile" : {
"networkInterfaces" : [
{
"id" : "[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
}
]
}
},
"dependsOn" : [
"[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
]
},
{
"type" : "Microsoft.Compute/virtualMachines/extensions" ,
"apiVersion" : "2021-11-01" ,
"name" : "[format('{0}/{1}', variables('vmName'), 'installcustomscript')]" ,
"location" : "[parameters('location')]" ,
"tags" : {
"displayName" : "install software for Windows VM"
},
"properties" : {
"publisher" : "Microsoft.Compute" ,
"type" : "CustomScriptExtension" ,
"typeHandlerVersion" : "1.9" ,
"autoUpgradeMinorVersion" : true ,
"protectedSettings" : {
"commandToExecute" : "powershell -ExecutionPolicy Unrestricted Install-WindowsFeature -Name Web-Server"
}
},
"dependsOn" : [
"[resourceId('Microsoft.Compute/virtualMachines', variables('vmName'))]"
]
},
{
"type" : "Microsoft.Network/privateLinkServices" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('privatelinkServiceName')]" ,
"location" : "[parameters('location')]" ,
"properties" : {
"enableProxyProtocol" : false ,
"loadBalancerFrontendIpConfigurations" : [
{
"id" : "[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', variables('loadbalancerName'), variables('loadBalancerFrontEndIpConfigurationName'))]"
}
],
"ipConfigurations" : [
{
"name" : "snet-provider-default-1" ,
"properties" : {
"privateIPAllocationMethod" : "Dynamic" ,
"privateIPAddressVersion" : "IPv4" ,
"subnet" : {
"id" : "[reference(variables('loadbalancerId'), '2019-06-01').frontendIPConfigurations[0].properties.subnet.id]"
},
"primary" : false
}
}
]
},
"dependsOn" : [
"[resourceId('Microsoft.Network/loadBalancers', variables('loadbalancerName'))]"
]
},
{
"type" : "Microsoft.Network/virtualNetworks" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('vnetConsumerName')]" ,
"location" : "[parameters('location')]" ,
"properties" : {
"addressSpace" : {
"addressPrefixes" : [
"[variables('vnetAddressPrefix')]"
]
},
"subnets" : [
{
"name" : "[variables('consumerSubnetName')]" ,
"properties" : {
"addressPrefix" : "[variables('consumerSubnetPrefix')]" ,
"privateEndpointNetworkPolicies" : "Disabled"
}
},
{
"name" : "[variables('backendSubnetName')]" ,
"properties" : {
"addressPrefix" : "[variables('backendSubnetPrefix')]"
}
}
]
}
},
{
"type" : "Microsoft.Network/publicIPAddresses" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('publicIpAddressConsumerName')]" ,
"location" : "[parameters('location')]" ,
"tags" : {
"displayName" : "[variables('publicIpAddressConsumerName')]"
},
"properties" : {
"publicIPAllocationMethod" : "Dynamic" ,
"dnsSettings" : {
"domainNameLabel" : "[toLower(variables('vmConsumerName'))]"
}
}
},
{
"type" : "Microsoft.Network/networkInterfaces" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('networkInterfaceConsumerName')]" ,
"location" : "[parameters('location')]" ,
"tags" : {
"displayName" : "[variables('networkInterfaceConsumerName')]"
},
"properties" : {
"ipConfigurations" : [
{
"name" : "ipConfig1" ,
"properties" : {
"privateIPAllocationMethod" : "Dynamic" ,
"publicIPAddress" : {
"id" : "[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIpAddressConsumerName'))]"
},
"subnet" : {
"id" : "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetConsumerName'), variables('consumerSubnetName'))]"
}
}
}
]
},
"dependsOn" : [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIpAddressConsumerName'))]" ,
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetConsumerName'))]"
]
},
{
"type" : "Microsoft.Compute/virtualMachines" ,
"apiVersion" : "2021-11-01" ,
"name" : "[variables('vmConsumerName')]" ,
"location" : "[parameters('location')]" ,
"tags" : {
"displayName" : "[variables('vmConsumerName')]"
},
"properties" : {
"hardwareProfile" : {
"vmSize" : "[parameters('vmSize')]"
},
"osProfile" : {
"computerName" : "[variables('vmConsumerName')]" ,
"adminUsername" : "[parameters('vmAdminUsername')]" ,
"adminPassword" : "[parameters('vmAdminPassword')]"
},
"storageProfile" : {
"imageReference" : {
"publisher" : "MicrosoftWindowsServer" ,
"offer" : "WindowsServer" ,
"sku" : "2019-Datacenter" ,
"version" : "latest"
},
"osDisk" : {
"name" : "[format('{0}OsDisk', variables('vmConsumerName'))]" ,
"caching" : "ReadWrite" ,
"createOption" : "FromImage" ,
"managedDisk" : {
"storageAccountType" : "[variables('osDiskType')]"
},
"diskSizeGB" : 128
}
},
"networkProfile" : {
"networkInterfaces" : [
{
"id" : "[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceConsumerName'))]"
}
]
}
},
"dependsOn" : [
"[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceConsumerName'))]"
]
},
{
"type" : "Microsoft.Network/privateEndpoints" ,
"apiVersion" : "2021-05-01" ,
"name" : "[variables('privateEndpointName')]" ,
"location" : "[parameters('location')]" ,
"properties" : {
"subnet" : {
"id" : "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetConsumerName'), variables('consumerSubnetName'))]"
},
"privateLinkServiceConnections" : [
{
"name" : "[variables('privateEndpointName')]" ,
"properties" : {
"privateLinkServiceId" : "[resourceId('Microsoft.Network/privateLinkServices', variables('privatelinkServiceName'))]"
}
}
]
},
"dependsOn" : [
"[resourceId('Microsoft.Network/privateLinkServices', variables('privatelinkServiceName'))]" ,
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetConsumerName'))]"
]
}
]
}
V šabloně je definováno více prostředků Azure:
Tady je postup nasazení šablony ARM do Azure:
Pokud se chcete přihlásit k Azure a otevřít šablonu, vyberte Nasadit do Azure . Šablona vytvoří virtuální počítač, standardní nástroj pro vyrovnávání zatížení, službu private link, privátní koncový bod, sítě a virtuální počítač, který se má ověřit.
Vyberte nebo vytvořte skupinu prostředků.
Zadejte uživatelské jméno a heslo správce virtuálního počítače.
Vyberte Zkontrolovat a vytvořit .
Vyberte Vytvořit .
Dokončení nasazení trvá několik minut.
Poznámka
Šablona ARM vygeneruje jedinečný název prostředku myConsumerVm{uniqueid} virtuálního počítače. Nahraďte vygenerovanou hodnotu { uniqueid} .
Připojení k virtuálnímu počítači z internetu
Připojte se k virtuálnímu počítači myConsumerVm{uniqueid} z internetu následujícím způsobem:
Na panelu hledání na portálu zadejte myConsumerVm{uniqueid} .
Vyberte Připojit . Otevře se připojení k virtuálnímu počítači .
Vyberte Stáhnout soubor RDP . Azure vytvoří soubor protokolu RDP ( Remote Desktop Protocol) a stáhne ho do počítače.
Otevřete soubor RDP stažený do počítače.
a. Pokud se zobrazí výzva, vyberte Připojit .
b. Zadejte uživatelské jméno a heslo, které jste zadali při vytváření virtuálního počítače.
Poznámka
Možná budete muset vybrat Další volby >Použít jiný účet , abyste zadali přihlašovací údaje, které jste zadali při vytváření virtuálního počítače.
Vyberte OK .
Při přihlášení se může zobrazit upozornění na certifikát. Pokud se zobrazí upozornění na certifikát, vyberte Ano nebo Pokračovat .
Jakmile se zobrazí plocha virtuálního počítače, minimalizujte ji, abyste se vrátili na místní plochu.
Privátní přístup ke službě HTTP z virtuálního počítače
Tady je postup, jak se z virtuálního počítače připojit ke službě HTTP pomocí privátního koncového bodu.
Přejděte na vzdálenou plochu myConsumerVm{uniqueid} .
Otevřete prohlížeč a zadejte adresu privátního koncového bodu: http://10.0.0.5/
.
Zobrazí se výchozí stránka služby IIS.
Pokud už nepotřebujete prostředky, které jste vytvořili pomocí služby private link, odstraňte skupinu prostředků. Tato operace odebere službu private link a všechny související prostředky.
Pokud chcete odstranit skupinu prostředků, zavolejte rutinu Remove-AzResourceGroup
:
Remove-AzResourceGroup -Name <your resource group name>
Další informace o službách, které podporují privátní koncový bod, najdete tady: