Openbare IP-adressen upgraden die zijn gekoppeld aan vm van Basic naar Standard

Belangrijk

Op 30 september 2025 worden openbare IP-adressen van basic-SKU's buiten gebruik gesteld. Zie de officiële aankondiging voor meer informatie. Als u momenteel openbare IP-adressen van de Basic SKU gebruikt, moet u een upgrade uitvoeren naar openbare IP-adressen van standard-SKU's vóór de buitengebruikstellingsdatum. Dit artikel helpt u bij het upgradeproces.

Zie hier voor meer informatie over het buiten gebruik stellen van openbare IP-adressen van basic-SKU's en de voordelen van openbare IP-adressen van standard-SKU's

Overzicht van de upgrade

Met dit script worden alle openbare IP-adressen bijgewerkt die zijn gekoppeld aan de VIRTUELE machine van Basic naar Standard SKU. Om de upgrade uit te voeren, wordt de toewijzingsmethode openbaar IP-adres ingesteld op statisch voordat deze wordt ontkoppeld van de virtuele machine. Zodra deze is ontkoppeld, wordt de openbare IP-SKU geüpgraded naar Standard en wordt het IP-adres opnieuw gekoppeld aan de virtuele machine.

Omdat de toewijzing van het openbare IP-adres is ingesteld op Statisch voordat de VM wordt losgekoppeld, verandert het IP-adres niet tijdens het upgradeproces, zelfs in het geval van een scriptfout. In de module wordt gecontroleerd of de toewijzingsmethode openbaar IP statisch is voordat het openbare IP-adres van de VIRTUELE machine wordt losgekoppeld.

De module registreert alle upgradeactiviteit naar een bestand met de naam PublicIPUpgrade.log, gemaakt op dezelfde locatie waar de module is uitgevoerd (standaard).

Beperkingen/niet-ondersteunde scenario's

  • VM's met NIC's die zijn gekoppeld aan een load balancer: omdat de load balancer en openbare IP-SKU's die aan een VIRTUELE machine zijn gekoppeld, overeenkomen, is het niet mogelijk om de openbare IP-adressen op exemplaarniveau te upgraden die zijn gekoppeld aan een VIRTUELE machine wanneer de NIC's van de VIRTUELE machine ook zijn gekoppeld aan een load balancer, via een back-endpool of NAT-poollidmaatschap. Gebruik de scripts upgraden van een Basic Load Balancer naar Standard SKU om zowel de Load Balancer als openbare IP-adressen te upgraden als dezelfde tijd.

  • VM's zonder een netwerkbeveiligingsgroep: VM's met IP-adressen die moeten worden bijgewerkt, moeten een netwerkbeveiligingsgroep (NSG) hebben die is gekoppeld aan het subnet van elke IP-configuratie met een openbaar IP-adres of rechtstreeks met de NIC. Dit komt doordat openbare IP-adressen van de standard-SKU 'standaard beveiligd' zijn, wat betekent dat verkeer naar het openbare IP-adres expliciet moet worden toegestaan bij een NSG om de VIRTUELE machine te bereiken. Openbare IP-adressen van basic-SKU's staan standaard verkeer toe. Als u openbare IP-SKU's bijwerkt zonder een NSG, leidt dit tot inkomend internetverkeer naar het openbare IP-adres dat eerder is toegestaan met de Basic-SKU die na de migratie wordt geblokkeerd. Zie: Openbare IP-SKU's

  • Virtuele-machineschaalsets met openbare IP-configuraties: als u een virtuele-machineschaalset (uniform model) hebt met openbare IP-configuraties per exemplaar, moet u er rekening mee houden dat deze configuraties geen openbare IP-resources zijn en daarom niet kunnen worden bijgewerkt. In plaats daarvan kunt u de standaard-IP-configuratie verwijderen en de SKU-eigenschap gebruiken om op te geven dat standaard-IP-configuraties vereist zijn voor elk exemplaar van de virtuele-machineschaalset, zoals hier wordt weergegeven.

Vereisten

Het script downloaden

Download het migratiescript vanuit de PowerShell Gallery.

PS C:\> Install-Module -Name AzureVMPublicIPUpgrade -Scope CurrentUser -Repository PSGallery -Force

De module gebruiken

  1. Gebruiken Connect-AzAccount om verbinding te maken met de vereiste Microsoft Entra-tenant en het Azure-abonnement

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Zoek de VIRTUELE machine met de gekoppelde openbare BASIS-IP-adressen die u wilt upgraden. Noteer de naam en de naam van de resourcegroep.

  3. Bekijk de moduleparameters:

    • VMName [tekenreeks] Vereist : deze parameter is de naam van uw VIRTUELE machine.
    • ResourceGroupName [tekenreeks] Vereist : deze parameter is de resourcegroep voor uw VM met de openbare IP-adressen basic die u wilt upgraden.
  4. Voer de opdracht Upgrade uit.

Voorbeeld van het gebruik van het script

Als u één VM wilt upgraden, geeft u de naam van de VM en de resourcegroep door als parameters.

    Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG'

Als u een upgrade van één VIRTUELE machine wilt evalueren zonder wijzigingen aan te brengen, voegt u de parameter -WhatIf toe.

    Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG' -WhatIf

Als u alle VM's in een resourcegroep wilt upgraden, kunt u VM's overslaan die geen netwerkbeveiligingsgroepen hebben.

    Get-AzVM -ResourceGroupName 'myRG' | Start-VMPublicIPUpgrade -skipVMMissingNSG

Herstellen van een mislukte migratie

Als een migratie mislukt vanwege een tijdelijk probleem, zoals een netwerkstoring of clientsysteemprobleem, kan de migratie opnieuw worden uitgevoerd om de VM en openbare IP-adressen in de doelstatus te configureren. Tijdens de uitvoering voert het script een herstellogboekbestand uit, dat wordt gebruikt om ervoor te zorgen dat de VIRTUELE machine correct opnieuw is geconfigureerd. Controleer het logboekbestand PublicIPUpgrade.log dat is gemaakt op de locatie waar het script is uitgevoerd.

Als u wilt herstellen na een mislukte upgrade, geeft u het pad van het herstellogboekbestand door naar het script met de -recoverFromFile parameter en identificeert u de VM die moet worden hersteld met de -VMName en -VMResourceGroup of -VMResourceID parameters, zoals wordt weergegeven in dit voorbeeld.

    Start-VMPublicIPUpgrade -RecoverFromFile ./PublicIPUpgrade_Recovery_2020-01-01-00-00.csv -VMName myVM -VMResourceGroup -rg-myrg

Veelgestelde vragen

Hoe lang duurt de migratie en hoe lang is mijn VM niet toegankelijk op het openbare IP-adres?

De tijd die nodig is om de openbare IP-adressen van een virtuele machine bij te werken, is afhankelijk van het aantal openbare IP-adressen en netwerkinterfaces die aan de VIRTUELE machine zijn gekoppeld. Bij het testen duurt het 1 tot 2 minuten voordat een VM met één NIC en een openbaar IP-adres is bijgewerkt. Elke NIC op de VIRTUELE machine voegt ongeveer een minuut toe en elk openbaar IP-adres voegt een paar seconden toe.

Kan ik terugkeren naar een openbaar IP-adres van een basic-SKU?

Het is niet mogelijk om een openbaar IP-adres van Standard naar Basic te downgraden.

Kan ik een migratie testen voordat ik deze uitvoert?

Er is geen manier om een upgrade van een openbaar IP-adres te evalueren zonder de actie te voltooien. Dit script bevat echter een -whatif parameter, waarmee wordt gecontroleerd of uw VM de upgrade ondersteunt en de stappen doorloopt zonder actie te ondernemen.

Ondersteunt het script Zoneal Basic SKU Openbare IP-adressen?

Ja, het proces voor het upgraden van een zonegebonden basic SKU openbaar IP-adres naar een zonegebonden standaard-SKU openbaar IP-adres is identiek en werkt in het script.

Resource Graph gebruiken om VM's weer te geven met openbare IP-adressen waarvoor een upgrade is vereist

Query uitvoeren om virtuele machines weer te geven met openbare IP-adressen van basic-SKU

Deze query retourneert een lijst met virtuele-machine-id's waaraan openbare IP-adressen van de Basic-SKU zijn gekoppeld.

Resources
| where type =~ 'microsoft.compute/virtualmachines'
| project vmId = tolower(id), vmNics = properties.networkProfile.networkInterfaces
| join (
  Resources |
  where type =~ 'microsoft.network/networkinterfaces' |
  project nicVMId = tolower(tostring(properties.virtualMachine.id)), allVMNicID = tolower(id), nicIPConfigs = properties.ipConfigurations)
  on $left.vmId == $right.nicVMId
| join (
  Resources
  | where type =~ 'microsoft.network/publicipaddresses' and isnotnull(properties.ipConfiguration.id)
  | where sku.name == 'Basic' // exclude to find all VMs with Public IPs
  | project pipId = id, pipSku = sku.name, pipAssociatedNicId = tolower(tostring(split(properties.ipConfiguration.id, '/ipConfigurations/')[0])))
  on $left.allVMNicID == $right.pipAssociatedNicId
| project vmId, pipId, pipSku
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | project vmId = tolower(id), vmNics = properties.networkProfile.networkInterfaces | join (Resources | where type =~ 'microsoft.network/networkinterfaces' | project nicVMId = tolower(tostring(properties.virtualMachine.id)), allVMNicID = tolower(id), nicIPConfigs = properties.ipConfigurations) on \$left.vmId == \$right.nicVMId | join ( Resources | where type =~ 'microsoft.network/publicipaddresses' and isnotnull(properties.ipConfiguration.id) | where sku.name == 'Basic' | project pipId = id, pipSku = sku.name, pipAssociatedNicId = tolower(tostring(split(properties.ipConfiguration.id, '/ipConfigurations/')[0]))) on \$left.allVMNicID == \$right.pipAssociatedNicId | project vmId, pipId, pipSku"

Volgende stappen