Secara otomatis memigrasikan skrip PowerShell dari AzureRM ke modul Az PowerShell
Pada artikel ini, Anda akan mempelajari cara menggunakan modul Az.Tools.Migration PowerShell untuk secara otomatis meningkatkan skrip PowerShell dan modul skrip dari AzureRM ke modul Az PowerShell. Untuk opsi migrasi tambahan, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Peringatan
Modul AzureRM PowerShell telah resmi tidak digunakan lagi per 29 Februari 2024. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan.
Meskipun modul AzureRM mungkin masih berfungsi, modul tersebut tidak lagi dipertahankan atau didukung, menempatkan penggunaan berkelanjutan berdasarkan kebijaksanaan dan risiko pengguna. Silakan merujuk ke sumber daya migrasi kami untuk panduan tentang transisi ke modul Az.
Persyaratan
Perbarui skrip PowerShell saat ini ke versi terbaru modul AzureRM PowerShell (6.13.1).
Instal modul Az.Tools.Migration PowerShell.
Install-Module -Name Az.Tools.Migration
Langkah 1: Buat rencana peningkatan
Anda menggunakan cmdlet New-AzUpgradeModulePlan
untuk membuat rencana peningkatan untuk memigrasikan skrip dan modul ke modul Az PowerShell. Cmdlet ini tidak membuat perubahan apa pun pada skrip saat ini. Gunakan parameter FilePath
untuk menargetkan skrip tertentu atau parameter DirectoryPath
untuk menargetkan semua skrip dalam folder tertentu.
Catatan
Cmdlet New-AzUpgradeModulePlan
tidak menjalankan rencana, hanya membuat langkah-langkah peningkatan.
Contoh berikut menghasilkan rencana untuk semua skrip di folder C:\Scripts
. Parameter OutVariable
ditentukan sehingga hasilnya ditampilkan dan disimpan secara bersamaan dalam variabel bernama Plan
.
# Generate an upgrade plan for all the scripts and module files in the specified folder and save it to a variable.
New-AzUpgradeModulePlan -FromAzureRmVersion 6.13.1 -ToAzVersion latest -DirectoryPath 'C:\Scripts' -OutVariable Plan
Seperti yang ditunjukkan dalam output berikut, rencana peningkatan merinci file tertentu dan titik offset yang memerlukan perubahan saat berpindah dari AzureRM ke cmdlet Az PowerShell.
Order Location UpgradeType PlanResult Original
----- -------- ----------- ---------- --------
1 compute-create-dockerhost.ps1:59:24 CmdletParameter ReadyToUpgrade ExtensionName
2 compute-create-dockerhost.ps1:59:1 Cmdlet ReadyToUpgrade Set-AzureRmVM...
3 compute-create-dockerhost.ps1:54:1 Cmdlet ReadyToUpgrade New-AzureRmVM
4 compute-create-dockerhost.ps1:51:1 Cmdlet ReadyToUpgrade Add-AzureRmVM...
5 compute-create-dockerhost.ps1:47:1 Cmdlet ReadyToUpgrade Add-AzureRmVM...
6 compute-create-dockerhost.ps1:46:1 Cmdlet ReadyToUpgrade Set-AzureRmVM...
7 compute-create-dockerhost.ps1:45:1 Cmdlet ReadyToUpgrade Set-AzureRmVM...
8 compute-create-dockerhost.ps1:44:13 Cmdlet ReadyToUpgrade New-AzureRmVM...
9 compute-create-dockerhost.ps1:40:8 Cmdlet ReadyToUpgrade New-AzureRmNe...
10 compute-create-dockerhost.ps1:36:8 Cmdlet ReadyToUpgrade New-AzureRmNe...
11 compute-create-dockerhost.ps1:31:16 Cmdlet ReadyToUpgrade New-AzureRmNe...
12 compute-create-dockerhost.ps1:26:15 Cmdlet ReadyToUpgrade New-AzureRmNe...
13 compute-create-dockerhost.ps1:22:8 Cmdlet ReadyToUpgrade New-AzureRmPu...
14 compute-create-dockerhost.ps1:18:9 Cmdlet ReadyToUpgrade New-AzureRmVi...
15 compute-create-dockerhost.ps1:15:17 Cmdlet ReadyToUpgrade New-AzureRmVi...
16 compute-create-dockerhost.ps1:12:1 Cmdlet ReadyToUpgrade New-AzureRmRe...
17 compute-create-windowsvm-quick.ps1:18:3 CmdletParameter ReadyToUpgrade ImageName
18 compute-create-windowsvm-quick.ps1:14:1 Cmdlet ReadyToUpgrade New-AzureRmVM
19 compute-create-windowsvm-quick.ps1:11:1 Cmdlet ReadyToUpgrade New-AzureRmRe...
20 compute-create-wordpress-mysql.ps1:59:24 CmdletParameter ReadyToUpgrade ExtensionName
...
Sebelum melakukan peningkatan, Anda perlu melihat masalah pada hasil rencana. Contoh berikut menampilkan daftar skrip dan item dalam skrip tersebut yang akan mencegahnya ditingkatkan secara otomatis.
# Filter plan results to only warnings and errors
$Plan | Where-Object PlanResult -ne ReadyToUpgrade | Format-List
Item yang ditampilkan dalam output berikut tidak akan ditingkatkan secara otomatis tanpa memperbaiki masalah secara manual terlebih dahulu.
Order : 42
UpgradeType : CmdletParameter
PlanResult : ErrorParameterNotFound
PlanSeverity : Error
PlanResultReason : Parameter was not found in Get-AzResource or it's aliases.
SourceCommand : CommandReference
SourceCommandParameter : CommandReferenceParameter
Location : devtestlab-add-marketplace-image-to-lab.ps1:14:74
FullPath : C:\Scripts\devtestlab-add-marketplace-image-to-lab.ps1
StartOffset : 556
Original : ResourceNameEquals
Replacement :
Langkah 2: Lakukan peningkatan
Perhatian
Tidak ada operasi undo (pembatalan). Selalu pastikan bahwa Anda memiliki salinan cadangan skrip dan modul PowerShell yang ingin Anda tingkatkan.
Setelah Anda puas dengan rencananya, peningkatan dilakukan dengan cmdlet Invoke-AzUpgradeModulePlan
. Tentukan SaveChangesToNewFiles
untuk nilai parameter FileEditMode
untuk mencegah perubahan dilakukan pada skrip asli Anda. Saat menggunakan mode ini, peningkatan dilakukan dengan membuat salinan setiap skrip yang ditargetkan dengan _az_upgraded
yang disertakan pada nama file.
Peringatan
Cmdlet Invoke-AzUpgradeModulePlan
bersifat destruktif ketika opsi -FileEditMode ModifyExistingFiles
ditentukan. Cmdlet ini memodifikasi skrip dan fungsi Anda di tempatnya sesuai dengan rencana peningkatan modul yang dihasilkan oleh cmdlet New-AzUpgradeModulePlan
. Untuk opsi non-destruktif, tentukan -FileEditMode SaveChangesToNewFiles
sebagai gantinya.
# Execute the automatic upgrade plan and save the results to a variable.
Invoke-AzUpgradeModulePlan -Plan $Plan -FileEditMode SaveChangesToNewFiles -OutVariable Results
Order Location UpgradeType UpgradeResult Original
----- -------- ----------- ------------- --------
1 compute-create-dockerhost.ps1:59:24 CmdletParameter UpgradeCompleted ExtensionName
2 compute-create-dockerhost.ps1:59:1 Cmdlet UpgradeCompleted Set-AzureRmVMExtens...
3 compute-create-dockerhost.ps1:54:1 Cmdlet UpgradeCompleted New-AzureRmVM
4 compute-create-dockerhost.ps1:51:1 Cmdlet UpgradeCompleted Add-AzureRmVMSshPub...
5 compute-create-dockerhost.ps1:47:1 Cmdlet UpgradeCompleted Add-AzureRmVMNetwor...
6 compute-create-dockerhost.ps1:46:1 Cmdlet UpgradeCompleted Set-AzureRmVMSource...
7 compute-create-dockerhost.ps1:45:1 Cmdlet UpgradeCompleted Set-AzureRmVMOperat...
8 compute-create-dockerhost.ps1:44:13 Cmdlet UpgradeCompleted New-AzureRmVMConfig
9 compute-create-dockerhost.ps1:40:8 Cmdlet UpgradeCompleted New-AzureRmNetworkI...
10 compute-create-dockerhost.ps1:36:8 Cmdlet UpgradeCompleted New-AzureRmNetworkS...
11 compute-create-dockerhost.ps1:31:16 Cmdlet UpgradeCompleted New-AzureRmNetworkS...
12 compute-create-dockerhost.ps1:26:15 Cmdlet UpgradeCompleted New-AzureRmNetworkS...
13 compute-create-dockerhost.ps1:22:8 Cmdlet UpgradeCompleted New-AzureRmPublicIp...
14 compute-create-dockerhost.ps1:18:9 Cmdlet UpgradeCompleted New-AzureRmVirtualN...
15 compute-create-dockerhost.ps1:15:17 Cmdlet UpgradeCompleted New-AzureRmVirtualN...
16 compute-create-dockerhost.ps1:12:1 Cmdlet UpgradeCompleted New-AzureRmResource...
17 compute-create-windowsvm-quick.ps1:18:3 CmdletParameter UpgradeCompleted ImageName
18 compute-create-windowsvm-quick.ps1:14:1 Cmdlet UpgradeCompleted New-AzureRmVM
19 compute-create-windowsvm-quick.ps1:11:1 Cmdlet UpgradeCompleted New-AzureRmResource...
20 compute-create-wordpress-mysql.ps1:59:24 CmdletParameter UpgradeCompleted ExtensionName
...
Jika ada kesalahan yang ditampilkan, Anda dapat mengamati hasil kesalahan dengan perintah berikut:
# Filter results to show only errors
$Results | Where-Object UpgradeResult -ne UpgradeCompleted | Format-List
Order : 42
UpgradeType : CmdletParameter
UpgradeResult : UnableToUpgrade
UpgradeSeverity : Error
UpgradeResultReason : Parameter was not found in Get-AzResource or it's aliases.
SourceCommand : CommandReference
SourceCommandParameter : CommandReferenceParameter
Location : devtestlab-add-marketplace-image-to-lab.ps1:14:74
FullPath : C:\Scripts\devtestlab-add-marketplace-image-to-lab.ps1
StartOffset : 556
Original : ResourceNameEquals
Replacement :
Batasan
- Operasi I/O file menggunakan pengodean default. Situasi pengodean file yang tidak biasa dapat menyebabkan masalah.
- Cmdlet AzureRM yang diteruskan sebagai argumen ke pernyataan tiruan uji unit Pester tidak terdeteksi.
Cara melaporkan masalah
Laporkan umpan balik dan masalah terkait modul Az.Tools.Migration PowerShell melalui masalah GitHub di repositori azure-powershell-migration
.
Langkah berikutnya
- Langkah migrasi
- Memigrasikan skrip PowerShell secara otomatis
- Memperkenalkan modul Az PowerShell
- Perubahan antara AzureRM dan Az
- Menginstal modul Azure PowerShell
- Menghapus instalan AzureRM
Untuk informasi selengkapnya tentang modul Az PowerShell, lihat dokumentasi Azure PowerShell
Azure PowerShell
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk