PowerShell betiklerini AzureRM'den Az PowerShell modülüne otomatik olarak geçirme

Bu makalede, Az.Tools.Migration PowerShell modülünü kullanarak PowerShell betiklerinizi ve betik modüllerinizi AzureRM'den Az PowerShell modülüne otomatik olarak yükseltmeyi öğreneceksiniz. Geçişle ilgili diğer seçenekler için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Uyarı

AzureRM PowerShell modülü 29 Şubat 2024 itibarıyla resmi olarak kullanım dışı bırakılmıştır. Kullanıcıların destek ve güncelleştirmelerin devam etmesini sağlamak için AzureRM'den Az PowerShell modülüne geçmeleri tavsiye edilir.

AzureRM modülü çalışmaya devam edebilir, ancak artık bakım yapılmaz veya desteklenmez ve kullanıcının takdirine ve riskine bağlı olarak sürekli kullanım sağlanır. Az modülüne geçiş konusunda yönergeler için lütfen geçiş kaynaklarımıza bakın.

Gereksinimler

1. Adım: Yükseltme planı oluşturma

Betiklerinizi ve modüllerinizi Az PowerShell modülüne geçirecek bir yükseltme planı oluşturmak için New-AzUpgradeModulePlan cmdlet'ini kullanırsınız. Bu cmdlet mevcut betiklerinizde herhangi bir değişiklik yapmaz. Belirli bir betiği hedeflemek için FilePath parametresini veya belirli bir klasördeki tüm betikleri hedeflemek için DirectoryPath parametresini kullanın.

Not

New-AzUpgradeModulePlan cmdlet'i planı yürütmez; yalnızca yükseltme adımlarını oluşturur.

Aşağıdaki örnek, C:\Scripts klasöründeki tüm betikler için bir plan oluşturur. OutVariable parametresi belirtilir, böylece sonuçlar döndürülüp aynı anda Plan adlı bir değişkende depolanır.

# 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

Aşağıdaki çıktıda gösterildiği gibi, tükseltme planında AzureRM'den Az PowerShell cmdlet'lerine taşırken değiştirilmesi gereken belirli dosya ve konum noktalarının ayrıntıları yer alır.

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
...

Yükseltmeyi gerçekleştirmeden önce plan sonuçlarını görüntüleyip sorun olup olmadığına bakmanız gerekir. Aşağıdaki örnek, betiklerin ve bu betiklerde yer alan, otomatik olarak yükseltilmelerini engelleyecek öğelerin bir listesini döndürür.

# Filter plan results to only warnings and errors
$Plan | Where-Object PlanResult -ne ReadyToUpgrade | Format-List

Aşağıdaki çıkışta gösterilen öğeler, önce sorunları el ile düzeltmeden otomatik olarak yükseltilmeyecek.

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            :

2. Adım: Yükseltmeyi gerçekleştirme

Dikkat

İşlem geri alınamaz. Geçirmeye çalıştığınız PowerShell betiklerinizin ve modüllerinizin her zaman bir yedek kopyası olmasına dikkat edin.

Plan uygun hale geldiğinde Invoke-AzUpgradeModulePlan cmdlet’iyle yükseltme gerçekleştirilir. Özgün betiklerinizde değişiklik yapılmasını engellemek için FileEditMode parametre değeri için SaveChangesToNewFiles belirtin. Bu modu kullanırken yükseltme işlemi, hedeflenen her betiğin dosya adlarına _az_upgraded eklenip bir kopyası oluşturularak yapılır.

Uyarı

-FileEditMode ModifyExistingFiles seçeneği belirtildiğinde Invoke-AzUpgradeModulePlan cmdlet'i yıkıcıdır! New-AzUpgradeModulePlan cmdlet'i tarafından oluşturulan modül yükseltme planına uygun olarak betiklerinizi ve işlevlerinizi yerinde değiştirir. Yıkıcı olmayan bir seçenek için onun yerine -FileEditMode SaveChangesToNewFiles belirtin.

# 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
...

Herhangi bir hata döndürülürse, şu komutu kullanarak hata sonuçlarına daha yakından bakabilirsiniz:

# 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            :

Sınırlamalar

  • Dosya G/Ç işlemlerinde varsayılan kodlama kullanılır. Olağan dışı dosya kodlama durumları sorunlara neden olabilir.
  • Pester birimi sahte test deyimlerine geçirilen AzureRM cmdlet'leri algılanmaz.

Sorunları bildirme

Az.Tools.Migration PowerShell modülüyle ilgili geri bildirimleri ve sorunları azure-powershell-migration deposunda bir GitHub sorunu yoluyla gönderin.

Sonraki adımlar

Az PowerShell modülü hakkında daha fazla bilgi edinmek için Azure PowerShell belgelerine bakın