Meningkatkan alamat IP publik yang dilampirkan ke VM dari Dasar ke Standar

Penting

Pada 30 September 2025, IP publik SKU Dasar akan dihentikan. Untuk informasi selengkapnya, lihat pengumuman resmi. Jika saat ini Anda menggunakan IP publik SKU Dasar, pastikan untuk meningkatkan ke IP publik SKU Standar sebelum tanggal penghentian. Artikel ini akan membantu memandu Anda melalui proses peningkatan.

Untuk informasi selengkapnya tentang penghentian IP Publik SKU Dasar dan manfaat IP Publik SKU Standar, lihat di sini

Gambaran umum peningkatan

Skrip ini meningkatkan Alamat IP Publik apa pun yang dilampirkan ke VM dari SKU Dasar ke Standar. Untuk melakukan peningkatan, metode alokasi Alamat IP Publik diatur ke statis sebelum diisolasi dari VM. Setelah disasosiasi, SKU IP Publik ditingkatkan ke Standar, maka IP dikaitkan kembali dengan VM.

Karena alokasi IP Publik diatur ke 'Statis' sebelum melepaskan dari VM, alamat IP tidak akan berubah selama proses peningkatan, bahkan jika terjadi kegagalan skrip. Modul ini memeriksa kembali bahwa metode alokasi IP Publik adalah 'Statis' sebelum melepaskan IP Publik dari VM.

Modul mencatat semua aktivitas peningkatan ke file bernama PublicIPUpgrade.log, dibuat di lokasi yang sama tempat modul dijalankan (secara default).

Batasan/ Skenario Yang Tidak Didukung

  • VM dengan NIC yang terkait dengan Load Balancer: Karena Load Balancer dan SKU IP Publik yang terkait dengan VM harus cocok, tidak dimungkinkan untuk meningkatkan alamat IP Publik tingkat instans yang terkait dengan VM ketika NIC VM juga terkait dengan Load Balancer, baik melalui Kumpulan Backend atau keanggotaan NAT Pool. Gunakan skrip Tingkatkan Load Balancer Dasar ke SKU Standar untuk meningkatkan LOAD Balancer dan IP Publik secara bersamaan.

  • VM tanpa Grup Keamanan Jaringan: VM dengan IP yang akan ditingkatkan harus memiliki Kelompok Keamanan Jaringan (NSG) yang terkait dengan subnet setiap konfigurasi IP dengan IP Publik, atau dengan NIC secara langsung. Ini karena IP Publik SKU Standar "aman secara default", yang berarti bahwa setiap lalu lintas ke IP Publik harus secara eksplisit diizinkan di NSG untuk mencapai VM. IP Publik SKU Dasar memungkinkan lalu lintas apa pun secara default. Meningkatkan SKU IP Publik tanpa NSG akan mengakibatkan lalu lintas internet masuk ke IP Publik yang sebelumnya diizinkan dengan SKU Dasar diblokir pascamigrasi. Lihat: SKU IP Publik

  • Virtual Machine Scale Sets dengan konfigurasi IP Publik: Jika Anda memiliki set skala komputer virtual (model seragam) dengan konfigurasi IP publik per instans, perhatikan konfigurasi ini bukan sumber daya IP Publik dan karenanya tidak dapat ditingkatkan. Sebagai gantinya, Anda dapat menghapus konfigurasi IP Dasar dan menggunakan properti SKU untuk menentukan bahwa konfigurasi IP Standar diperlukan untuk setiap instans set skala komputer virtual seperti yang ditunjukkan di sini.

Prasyarat

  • Menginstal PowerShell versi terbaru
  • Pastikan apakah Anda memiliki modul Az PowerShell terbaru yang terinstal (dan instal modul Az PowerShell terbaru jika tidak)

Mengunduh skrip

Unduh skrip migrasi dari Galeri PowerShell.

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

Menggunakan modul

  1. Gunakan Connect-AzAccount untuk menyambungkan ke penyewa Microsoft Entra dan langganan Azure yang diperlukan

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Temukan VM dengan IP Publik Dasar terlampir yang ingin Anda tingkatkan. Catat nama dan nama grup sumber dayanya.

  3. Periksa parameter modul:

    • VMName [string] Required - Parameter ini adalah nama VM Anda.
    • ResourceGroupName [string] Required - Parameter ini adalah grup sumber daya untuk VM Anda dengan IP Publik Dasar yang dilampirkan yang ingin Anda tingkatkan.
  4. Jalankan perintah Tingkatkan.

Contoh penggunaan skrip

Untuk meningkatkan satu VM, berikan nama VM dan nama grup sumber daya sebagai parameter.

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

Untuk mengevaluasi peningkatan satu VM, tanpa membuat perubahan apa pun, tambahkan parameter -WhatIf.

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

Untuk meningkatkan semua VM dalam grup sumber daya, lewati VM yang tidak memiliki Grup Keamanan Jaringan.

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

Memulihkan dari migrasi yang gagal

Jika migrasi gagal karena masalah sementara, seperti pemadaman jaringan atau masalah sistem klien, migrasi dapat dijalankan kembali untuk mengonfigurasi VM dan IP Publik dalam status tujuan. Saat eksekusi, skrip menghasilkan file log pemulihan, yang digunakan untuk memastikan VM dikonfigurasi ulang dengan benar. Tinjau file PublicIPUpgrade.log log yang dibuat di lokasi tempat skrip dijalankan.

Untuk memulihkan dari peningkatan yang gagal, lewati jalur file log pemulihan ke skrip dengan -recoverFromFile parameter dan identifikasi VM untuk pulih dengan -VMName parameter dan -VMResourceGroup atau -VMResourceID , seperti yang ditunjukkan dalam contoh ini.

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

Pertanyaan umum

Berapa lama migrasi akan berlangsung dan berapa lama VM saya tidak dapat diakses di IP Publiknya?

Waktu yang diperlukan untuk meningkatkan IP Publik VM tergantung pada jumlah IP Publik dan Antarmuka Jaringan yang terkait dengan VM. Dalam pengujian, VM dengan satu NIC dan IP Publik membutuhkan waktu antara 1 dan 2 menit untuk ditingkatkan. Setiap NIC pada VM menambahkan sekitar satu menit lagi, dan setiap IP Publik menambahkan masing-masing beberapa detik.

Dapatkah saya kembali ke IP Publik SKU Dasar?

Tidak dimungkinkan untuk menurunkan tingkat alamat IP Publik dari Standar ke Dasar.

Dapatkah saya menguji migrasi sebelum menjalankan?

Tidak ada cara untuk mengevaluasi peningkatan IP Publik tanpa menyelesaikan tindakan. Namun, skrip ini menyertakan -whatif parameter, yang memeriksa apakah VM Anda akan mendukung peningkatan dan menelusuri langkah-langkah tanpa mengambil tindakan.

Apakah skrip mendukung IP Publik SKU Dasar Zona?

Ya, proses peningkatan IP Publik SKU Dasar Zona ke IP Publik SKU Standar Zona identik dan berfungsi dalam skrip.

Menggunakan Resource Graph untuk mencantumkan VM dengan IP Publik yang memerlukan peningkatan

Kueri untuk mencantumkan komputer virtual dengan alamat IP publik SKU Dasar

Kueri ini mengembalikan daftar ID komputer virtual dengan alamat IP publik SKU Dasar yang dilampirkan.

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"

Langkah berikutnya