Aracılığıyla paylaş


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

Bu makalede, PowerShell betiklerinizi ve betik modüllerinizi AzureRM'den Az PowerShell modülüne otomatik olarak yükseltmek için Az.Tools.Migration PowerShell modülünü kullanmayı öğreneceksiniz. Ek geçiş seçenekleri için bkz. Azure PowerShell AzureRM'den Az'a 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

  • Mevcut PowerShell betiklerinizi AzureRM PowerShell modülünün en son sürümüne (6.13.1) güncelleştirin.

  • Az.Tools.Migration PowerShell modülünü yükleyin.

    Install-Module -Name Az.Tools.Migration
    

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

Betiklerinizi ve modüllerinizi Az PowerShell modülüne geçirmek için yükseltme planı oluşturmak amacıyla cmdlet komutunu kullanırsınız. Bu cmdlet, mevcut betiklerinizde herhangi bir değişiklik yapmaz. Belirli bir betiği hedeflemek için ilgili parametreyi veya belirli bir klasördeki tüm betikleri hedeflemek için ilgili parametreyi kullanın.

Uyarı

Cmdlet planı yürütmez, yalnızca yükseltme adımlarını oluşturur.

Aşağıdaki örnek, klasördeki tüm betikler için bir plan oluşturur. parametresi belirtilir, böylece sonuçlar döndürülür ve aynı anda 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 sonuçta gösterildiği gibi güncelleme planı, AzureRM'den Az PowerShell cmdlet'lerine geçerken değişiklik gerektiren belirli dosya ve ofset noktalarını ayrıntılarıyla açıklar.

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ın sonuçlarını sorunlar açısından görüntülemeniz gerekir. Aşağıdaki örnek, betiklerin ve bu betiklerdeki öğelerin otomatik olarak yükseltilmesini engelleyecek öğelerin 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

Geri alma işlemi yok. Yükseltmeye çalıştığınız PowerShell betiklerinizin ve modüllerinizin yedek bir kopyasına sahip olduğunuzdan emin olun.

Plandan memnun olduktan sonra yükseltme cmdlet'iyle gerçekleştirilir. Özgün betiklerinizde değişiklik yapılmasını önlemek için parametre değerini belirtin. Bu mod kullanılırken, dosya adlarına eklenmiş olarak hedeflenen her betiğin bir kopyası oluşturularak yükseltme gerçekleştirilir.

Uyarı

Seçenek belirtildiğinde cmdlet yıkıcı olur! Betiklerinizi ve işlevlerinizi, cmdlet tarafından oluşturulan modül yükseltme planına göre değiştirir. Yıkıcı olmayan seçenek için bunun yerine bir değer 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, aşağıdaki komutla 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şlemleri varsayılan kodlamayı kullanır. Olağan dışı dosya kodlama durumları sorunlara neden olabilir.
  • Pester birim testi sahte deyimlerine bağımsız değişken olarak geçirilen AzureRM cmdlet'leri algılanmamıştır.

Sorunları bildirme

a GitHub sorunu aracılığıyla Az.Tools.Migration PowerShell modülüyle ilgili geri bildirim ve sorunları azure-powershell-migration deposunda bildirin.

Sonraki Adımlar

  • Geçiş Adımları
  • PowerShell betiklerini otomatik olarak aktarma
  • Az PowerShell modülüne giriş
  • AzureRM ile Az arasındaki değişiklikler
  • Az PowerShell modülünü yükleme
  • AzureRM'yi kaldırma

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