Zmiany powodujące niezgodność w module Az 1.0.0
Ten dokument zawiera szczegółowe informacje na temat różnic między modułem AzureRM w wersji 6.x i nowym modułem Az w wersji 1.x i nowszych. Spis treści pomoże przeprowadzić Cię przez pełną ścieżkę migracji, w tym zmiany specyficzne dla modułu, które mogą mieć wpływ na skrypty.
Aby uzyskać ogólne porady dotyczące rozpoczynania pracy z migracją z modułu AzureRM do modułu Az, zobacz Rozpoczynanie migracji z modułu AzureRM do modułu Az.
Ważne
Także między wersją 1.0.0 i 2.0.0 modułu wprowadzono zmiany powodujące niezgodność. Po wykonaniu instrukcji tego przewodnika w celu aktualizacji z modułu AzureRM do modułu Az, zobacz Zmiany powodujące niezgodność w module Az 2.0.0, aby dowiedzieć się, czy musisz wprowadzić dodatkowe zmiany.
Spis treści
- Ogólne zmiany powodujące niezgodność
- Zmiany powodujące niezgodność modułów
- Az.ApiManagement (wcześniej AzureRM.ApiManagement)
- Az.Billing (wcześniej AzureRM.Billing, AzureRM.Consumption i AzureRM.UsageAggregates)
- Az.CognitiveServices (wcześniej AzureRM.CognitiveServices)
- Az.Compute (wcześniej AzureRM.Compute)
- Az.DataFactory (wcześniej AzureRM.DataFactories i AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics (wcześniej AzureRM.DataLakeAnalytics)
- Az.DataLakeStore (wcześniej AzureRM.DataLakeStore)
- Az.KeyVault (wcześniej AzureRM.KeyVault)
- Az.Media (wcześniej AzureRM.Media)
- Az.Monitor (wcześniej AzureRM.Insights)
- Az.Network (wcześniej AzureRM.Network)
- Az.OperationalInsights (wcześniej AzureRM.OperationalInsights)
- Az.RecoveryServices (wcześniej AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup i AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources (wcześniej AzureRM.Resources)
- Az.ServiceFabric (wcześniej AzureRM.ServiceFabric)
- Az.Sql (wcześniej AzureRM.Sql)
- Az.Storage (wcześniej Azure.Storage i AzureRM.Storage)
- Az.Websites (wcześniej AzureRM.Websites)
Ogólne zmiany powodujące niezgodność
W tej sekcji przedstawiono ogólne zmiany powodujące niezgodność wprowadzone w ramach przeprojektowania modułu Az.
Zmiany prefiksów poleceń cmdlet w postaci rzeczownika
W module AzureRM polecenia cmdlet używały ciągu AzureRM
lub Azure
jako prefiksu w postaci rzeczownika. Moduł Az upraszcza i normalizuje nazwy poleceń cmdlet, więc wszystkie polecenia cmdlet mają prefiks w postaci rzeczownika „Az”. Na przykład:
Get-AzureRMVM
Get-AzureKeyVaultSecret
Zmieniono na:
Get-AzVM
Get-AzKeyVaultSecret
Aby ułatwić przejście na te nowe nazwy poleceń cmdlet, moduł Az wprowadza dwa nowe polecenia cmdlet, Enable-AzureRmAlias i Disable-AzureRmAlias. Polecenie cmdlet Enable-AzureRmAlias
tworzy aliasy dla starszych nazw poleceń cmdlet w module AzureRM mapowane na nowsze nazwy poleceń cmdlet w module Az. Argument -Scope
polecenia cmdlet Enable-AzureRmAlias
pozwala wybrać, gdzie aliasy zostaną włączone.
Na przykład poniższy skrypt w module AzureRM:
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Może zostać uruchomiony tylko z niewielkimi zmianami, jeśli zostanie użyte polecenie cmdlet Enable-AzureRmAlias
:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Uruchomienie polecenia cmdlet Enable-AzureRmAlias -Scope CurrentUser
spowoduje włączenie aliasów dla wszystkich otwieranych sesji programu PowerShell, więc po jego wykonaniu nie trzeba w ogóle zmieniać skryptów podobnych do poniższego:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Aby uzyskać szczegółowe informacje dotyczące użycia aliasów poleceń cmdlet, zobacz Dokumentacja polecenia cmdlet Enable-AzureRmAlias.
Gdy wszystko będzie gotowe do wyłączenia aliasów, możesz usunąć utworzone aliasy za pomocą polecenia cmdlet Disable-AzureRmAlias
. Aby uzyskać szczegółowe informacje, zobacz Dokumentacja polecenia cmdlet Disable-AzureRmAlias.
Ważne
Podczas wyłączania aliasów upewnij się, że zostaną one wyłączone dla wszystkich zakresów, w których je włączono.
Zmiany nazw modułów
Nazwy modułów zostały zmienione z AzureRM.*
na Az.*
, z wyjątkiem następujących modułów:
Moduł AzureRM | Moduł Az |
---|---|
Azure.Storage | Az.Storage |
Azure.AnalysisServices | Az.AnalysisServices |
AzureRM.Profile | Az.Accounts |
AzureRM.Insights | Az.Monitor |
AzureRM.DataFactories | Az.DataFactory |
AzureRM.DataFactoryV2 | Az.DataFactory |
AzureRM.RecoveryServices.Backup | Az.RecoveryServices |
AzureRM.RecoveryServices.SiteRecovery | Az.RecoveryServices |
AzureRM.Tags | Az.Resources |
AzureRM.MachineLearningCompute | Az.MachineLearning |
AzureRM.UsageAggregates | Az.Billing |
AzureRM.Consumption | Az.Billing |
Zmiany nazw modułów oznaczają, że każdy skrypt, który używa instrukcji #Requires
lub Import-Module
do ładowania określonych modułów, będzie trzeba zmienić tak, aby używał nowego modułu. Jeśli dla danego modułu sufiks polecenia cmdlet pozostał taki sam, oznacza to, że chociaż nazwa modułu się zmieniła, to sufiks wskazujący obszar operacji nie uległ zmianie.
Migrowanie instrukcji #Requires i Import-Module
Skrypty używające instrukcji #Requires
lub Import-Module
do deklarowania zależności od modułów AzureRM należy zaktualizować tak, aby używały nowych nazw modułów. Na przykład:
#Requires -Module AzureRM.Compute
Należy zmienić na:
#Requires -Module Az.Compute
W przypadku ramki Import-Module
:
Import-Module -Name AzureRM.Compute
Należy zmienić na:
Import-Module -Name Az.Compute
Migrowanie w pełni kwalifikowanych wywołań poleceń cmdlet
Skrypty używające wywołań poleceń cmdlet kwalifikowanych za pomocą modułu, takie jak:
AzureRM.Compute\Get-AzureRmVM
Należy zmienić tak, aby używały nowych nazw modułów i poleceń cmdlet:
Az.Compute\Get-AzVM
Migrowanie zależności manifestu modułów
W przypadku modułów, w których zależności od modułów AzureRM są wyrażane za pomocą pliku manifestu modułów (psd1), należy zaktualizować nazwy modułów w sekcji RequiredModules
:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
Należy zmienić na:
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
Usunięte moduły
Następujące moduły zostały usunięte:
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
Narzędzia dla tych usług nie są już aktywnie wspierane. Zachęcamy klientów do jak najszybszego przechodzenia do alternatywnych usług.
Windows PowerShell 5.1 i .NET 4.7.2
Korzystanie z modułu Az w programie PowerShell 5.1 dla systemu Windows wymaga zainstalowania programu .NET Framework 4.7.2. Jeśli używasz programu PowerShell Core w wersji 6.x lub nowszej, program .NET Framework nie jest wymagany.
Tymczasowe usunięcie logowania użytkowników przy użyciu obiektu PSCredential
Ze względu na zmiany w przepływie uwierzytelniania dla platformy .NET Standard tymczasowo usuwamy możliwość logowania użytkownika za pomocą obiektu PSCredential. Ta możliwość zostanie ponownie udostępniona w wersji dla programu PowerShell 5.1 dla systemu Windows opublikowanej 15.01.2019. Ta kwestia została szczegółowo omówiona w ramach tego problemu w usłudze GitHub.
Domyślne logowanie za pomocą kodu urządzenia zamiast monitu przeglądarki internetowej
Ze względu na zmiany w przepływie uwierzytelniania dla platformy .NET Standard używamy logowania urządzenia jako domyślnego przepływu logowania podczas logowania interakcyjnego. Logowanie oparte na przeglądarce internetowej ponownie stanie się domyślne dla programu PowerShell 5.1 dla systemu Windows w wersji opublikowanej 15.01.2019. Użytkownicy będą wtedy mogli wybrać logowanie urządzenia za pomocą parametru przełącznika.
Zmiany powodujące niezgodność modułów
W tej sekcji szczegółowo opisano konkretne zmiany powodujące niezgodność w poszczególnych modułach i poleceniach cmdlet.
Az.ApiManagement (wcześniej AzureRM.ApiManagement)
- Usunięto następujące polecenia cmdlet:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Zamiast nich do ustawiania tych właściwości użyj polecenia cmdlet Set-AzApiManagement
- Usunięto następujące właściwości:
- Usunięto właściwości
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
iScmHostnameConfiguration
typuPsApiManagementHostnameConfiguration
z klasyPsApiManagementContext
. Zamiast nich używaj właściwościPortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
iScmCustomHostnameConfiguration
typuPsApiManagementCustomHostNameConfiguration
. - Usunięto właściwość
StaticIPs
z klasy PsApiManagementContext. Właściwość została podzielona na właściwościPublicIPAddresses
iPrivateIPAddresses
. - Usunięto wymaganą właściwość
Location
z polecenia cmdlet New-AzureApiManagementVirtualNetwork.
- Usunięto właściwości
Az.Billing (wcześniej AzureRM.Billing, AzureRM.Consumption i AzureRM.UsageAggregates)
- Parametr
InvoiceName
został usunięty z polecenia cmdletGet-AzConsumptionUsageDetail
. W skryptach będzie trzeba używać innych parametrów tożsamości na potrzeby faktury.
Az.CognitiveServices (wcześniej AzureRM.CognitiveServices)
- Usunięto zestaw parametrów
GetSkusWithAccountParamSetName
z polecenia cmdletGet-AzCognitiveServicesAccountSkus
. Musisz uzyskiwać jednostki SKU według typu konta i lokalizacji, a nie nazwy grupy zasobów i nazwy konta.
Az.Compute (wcześniej AzureRM.Compute)
- Pole
IdentityIds
zostało usunięte z właściwościIdentity
w obiektachPSVirtualMachine
iPSVirtualMachineScaleSet
. Skrypty nie powinny już używać wartości tego pola do podejmowania decyzji dotyczących przetwarzania. - Typ właściwości
InstanceView
obiektuPSVirtualMachineScaleSetVM
został zmieniony zVirtualMachineInstanceView
naVirtualMachineScaleSetVMInstanceView
- Właściwości
AutoOSUpgradePolicy
iAutomaticOSUpgrade
zostały usunięte z właściwościUpgradePolicy
- Typ właściwości
Sku
w obiekciePSSnapshotUpdate
został zmieniony zDiskSku
naSnapshotSku
- Zestaw
VmScaleSetVMParameterSet
został usunięty z polecenia cmdletAdd-AzVMDataDisk
. Nie można już dodawać pojedynczego dysku danych do maszyny wirtualnej w zestawie skalowania.
Az.DataFactory (wcześniej AzureRM.DataFactories i AzureRM.DataFactoryV2)
- Parametr
GatewayName
stał się obowiązkowy w poleceniu cmdletNew-AzDataFactoryEncryptValue
- Usunięto polecenie cmdlet
New-AzDataFactoryGatewayKey
- Usunięto parametr
LinkedServiceName
z polecenia cmdletGet-AzDataFactoryV2ActivityRun
. Skrypty nie powinny już używać wartości tego pola do podejmowania decyzji dotyczących przetwarzania.
Az.DataLakeAnalytics (wcześniej AzureRM.DataLakeAnalytics)
- Usunięto przestarzałe polecenia cmdlet:
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
iSet-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore (wcześniej AzureRM.DataLakeStore)
W następujących poleceniach cmdlet typ parametru
Encoding
został zmieniony zFileSystemCmdletProviderEncoding
naSystem.Text.Encoding
. W ramach tej zmiany usunięto wartości kodowaniaString
iOem
. Nadal dostępne są wszystkie pozostałe wcześniejsze wartości kodowania.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Usunięto przestarzały alias właściwości
Tags
z poleceń cmdletNew-AzDataLakeStoreAccount
iSet-AzDataLakeStoreAccount
Skrypty używające kodu
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
Należy zmienić na
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
Usunięto przestarzałe właściwości
Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
,FirewallState
,FirewallRules
,VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
iFirewallAllowAzureIps
z obiektuPSDataLakeStoreAccountBasic
. Żaden skrypt, który używa obiektuPSDatalakeStoreAccount
zwróconego przez polecenieGet-AzDataLakeStoreAccount
, nie powinien odwoływać się do tych właściwości.
Az.KeyVault (wcześniej AzureRM.KeyVault)
- Właściwość
PurgeDisabled
została usunięta z obiektówPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
iPSKeyVaultSecretAttributes
. Skrypty nie powinny już odwoływać się do właściwościPurgeDisabled
w celu podejmowania decyzji dotyczących przetwarzania.
Az.Media (wcześniej AzureRM.Media)
Usunięto przestarzały alias właściwości
Tags
z polecenia cmdletNew-AzMediaService
. Skrypty używające koduNew-AzureRMMediaService -Tags @{TagName="TagValue"}
Należy zmienić na
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (wcześniej AzureRM.Insights)
Z polecenia cmdlet
Set-AzDiagnosticSetting
usunięto parametry o nazwach w liczbie mnogiejCategories
iTimegrains
, aby zastąpić je nazwami parametrów w liczbie pojedynczej. Skrypty używające koduSet-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Należy zmienić na
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (wcześniej AzureRM.Network)
- Usunięto przestarzały parametr
ResourceId
z polecenia cmdletGet-AzServiceEndpointPolicyDefinition
- Usunięto przestarzałą właściwość
EnableVmProtection
z obiektuPSVirtualNetwork
- Usunięto przestarzałe polecenie cmdlet
Set-AzVirtualNetworkGatewayVpnClientConfig
Skrypty nie powinny już podejmować decyzji dotyczących przetwarzania na podstawie wartości tych pól.
Az.OperationalInsights (wcześniej AzureRM.OperationalInsights)
Usunięto domyślny zestaw parametrów dla polecenia
Get-AzOperationalInsightsDataSource
, a zestawByWorkspaceNameByKind
stał się domyślnym zestawem parametrówSkrypty zwracające listę źródeł danych przy użyciu polecenia
Get-AzureRmOperationalInsightsDataSource
Należy zmienić tak, aby określały rodzaj
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (wcześniej AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup i AzureRM.RecoveryServices.SiteRecovery)
- Usunięto parametr
Encryption
z polecenia cmdletNew/Set-AzRecoveryServicesAsrPolicy
- Parametr
TargetStorageAccountName
jest teraz obowiązkowy na potrzeby przywracania dysku zarządzanego w poleceniu cmdletRestore-AzRecoveryServicesBackupItem
- Usunięto parametry
StorageAccountName
iStorageAccountResourceGroupName
w poleceniu cmdletRestore-AzRecoveryServicesBackupItem
- Usunięto parametr
Name
w poleceniu cmdletGet-AzRecoveryServicesBackupContainer
Az.Resources (wcześniej AzureRM.Resources)
Usunięto parametr
Sku
z polecenia cmdletNew/Set-AzPolicyAssignment
Usunięto parametr
Password
z poleceń cmdletNew-AzADServicePrincipal
iNew-AzADSpCredential
. Hasła są generowane automatycznie, a skrypty, które podawały hasło:New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
Należy zmienić tak, aby uzyskiwały hasło z danych wyjściowych:
$credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 $secPassword = $credential.Secret
Az.ServiceFabric (wcześniej AzureRM.ServiceFabric)
- Zmieniono następujące typy zwracanych poleceń cmdlet:
- Właściwość
ServiceTypeHealthPolicies
typuApplicationHealthPolicy
została usunięta. - Właściwość
ApplicationHealthPolicies
typuClusterUpgradeDeltaHealthPolicy
została usunięta. - Właściwość
OverrideUserUpgradePolicy
typuClusterUpgradePolicy
została usunięta. - Te zmiany mają wpływ na następujące polecenia cmdlet:
- Add-AzServiceFabricClientCertificate
- Add-AzServiceFabricClusterCertificate
- Add-AzServiceFabricNode
- Add-AzServiceFabricNodeType
- Get-AzServiceFabricCluster
- Remove-AzServiceFabricClientCertificate
- Remove-AzServiceFabricClusterCertificate
- Remove-AzServiceFabricNode
- Remove-AzServiceFabricNodeType
- Remove-AzServiceFabricSetting
- Set-AzServiceFabricSetting
- Set-AzServiceFabricUpgradeType
- Update-AzServiceFabricDurability
- Update-AzServiceFabricReliability
- Właściwość
Az.Sql (wcześniej AzureRM.Sql)
- Usunięto parametry
State
iResourceId
z polecenia cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Usunięto przestarzałe polecenia cmdlet:
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
iRemove-AzSqlServerAuditing
- Usunięto przestarzały parametr
Current
z polecenia cmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Usunięto przestarzały parametr
DatabaseName
z polecenia cmdletGet-AzSqlServerServiceObjective
- Usunięto przestarzały parametr
PrivilegedLogin
z polecenia cmdletSet-AzSqlDatabaseDataMaskingPolicy
Az.Storage (wcześniej Azure.Storage i AzureRM.Storage)
- Aby obsługiwać tworzenie kontekstu magazynu OAuth za pomocą tylko nazwy konta magazynu, domyślny zestaw parametrów został zmieniony na
OAuthParameterSet
- Przykład:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Przykład:
- Parametr
Location
stał się obowiązkowy w poleceniu cmdletGet-AzStorageUsage
- Metody interfejsu API magazynu używają teraz wzorca asynchronicznego opartego na zadaniach zamiast synchronicznych wywołań interfejsu API. W poniższych przykładach pokazano nowe polecenia asynchroniczne:
Migawka obiektu blob
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$b.ICloudBlob.Snapshot()
Az:
$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$task = $b.ICloudBlob.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
Udostępnianie migawki
AzureRM:
$Share = Get-AzureStorageShare -Name $containerName -Context $ctx
$snapshot = $Share.Snapshot()
Az:
$Share = Get-AzStorageShare -Name $containerName -Context $ctx
$task = $Share.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
Cofanie usunięcia nietrwale usuniętego obiektu blob
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$b.ICloudBlob.Undelete()
Az:
$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$task = $b.ICloudBlob.UndeleteAsync()
$task.Wait()
Ustawianie warstwy obiektu blob
AzureRM:
$blockBlob = Get-AzureStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$blockBlob.ICloudBlob.SetStandardBlobTier("hot")
$pageBlob = Get-AzureStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$pageBlob.ICloudBlob.SetPremiumBlobTier("P4")
Az:
$blockBlob = Get-AzStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$task = $blockBlob.ICloudBlob.SetStandardBlobTierAsync("hot")
$task.Wait()
$pageBlob = Get-AzStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$task = $pageBlob.ICloudBlob.SetPremiumBlobTierAsync("P4")
$task.Wait()
Az.Websites (wcześniej AzureRM.Websites)
- Usunięto przestarzałe właściwości z obiektów
PSAppServicePlan
,PSCertificate
,PSCloningInfo
iPSSite