Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten dokument zawiera szczegółowe informacje na temat zmian między modułem AzureRM 6.x i nowym modułem Az w wersji 1.x lub nowszej. Spis treści pomoże Ci przejść 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żna
Wystąpiły również zmiany powodujące niekompatybilność między wersjami Az 1.0.0 i Az 2.0.0. Po wykonaniu tego przewodnika dotyczącego aktualizacji z modułu AzureRM do modułu Az, zobacz zmiany niekompatybilności w wersji Az 2.0.0, aby sprawdzić, czy trzeba wprowadzić dodatkowe zmiany.
Spis treści
- Ogólne zmiany powodujące błędy
-
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 opisano ogólne zmiany powodujące niezgodność, które są częścią przeprojektowania modułu Az.
Zmiany prefiksu rzeczownika polecenia cmdletu
W module AzureRM polecenia cmdlet używały prefiksu AzureRM lub Azure. Moduł Az upraszcza i normalizuje nazwy cmdletów, dzięki czemu wszystkie cmdlety używają "Az" jako prefiksu rzeczownika cmdletu. Przykład:
Get-AzureRMVM
Get-AzureKeyVaultSecret
Zmieniono na:
Get-AzVM
Get-AzKeyVaultSecret
Aby ułatwić przejście do tych nowych nazw poleceń cmdlet, Az wprowadza dwa nowe polecenia cmdlet, „Enable-AzureRmAlias” i „Disable-AzureRmAlias”.
Enable-AzureRmAlias Tworzy aliasy dla starszych nazw poleceń cmdlet w module AzureRM, które odpowiadają nowszym nazwom poleceń cmdlet Az. Użycie argumentu -Scope z Enable-AzureRmAlias pozwala wybrać, gdzie aliasy są włączone.
Na przykład następujący skrypt w module AzureRM:
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Można uruchomić z minimalnymi zmianami przy użyciu Enable-AzureRmAlias:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Uruchomienie Enable-AzureRmAlias -Scope CurrentUser spowoduje włączenie aliasów dla wszystkich otwartych sesji programu PowerShell, aby po wykonaniu tego polecenia cmdlet skrypt podobny do tego nie musiałby zostać w ogóle zmieniony:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Aby uzyskać szczegółowe informacje na temat użycia aliasów poleceń cmdlet, zobacz dokumentacjęEnable-AzureRmAlias.
Gdy wszystko będzie gotowe do wyłączenia aliasów, Disable-AzureRmAlias usuwa utworzone aliasy. Aby uzyskać szczegółowe informacje, zapoznaj się z dokumentacją Disable-AzureRmAlias.
Ważna
Podczas wyłączania aliasów upewnij się, że są one wyłączone dla wszystkich zakresów z włączonymi aliasami.
Zmiany nazwy modułu
Nazwy modułów zmieniły się 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.Fakturowanie |
| AzureRM.Consumption | Az.Fakturowanie |
Zmiany w nazwach modułów oznaczają, że każdy skrypt używający #Requires lub Import-Module do załadowania określonych modułów musi zostać zmieniony, aby zamiast tego używał nowego modułu. W przypadku modułów, w których sufiks polecenia cmdlet nie uległ zmianie, oznacza to, że chociaż nazwa modułu została zmieniona, sufiks wskazujący przestrzeń operacyjną nie uległ zmianie.
Migrowanie instrukcji #Requires i Import-Module
Skrypty, które używają #Requires lub Import-Module do deklarowania zależności od modułów AzureRM, muszą zostać zaktualizowane, aby korzystać z nowych nazw modułów. Przykład:
#Requires -Module AzureRM.Compute
Należy zmienić na:
#Requires -Module Az.Compute
Dla 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 korzystające z wywołań poleceń cmdlet kwalifikowanych przez moduł, takich jak:
AzureRM.Compute\Get-AzureRmVM
Należy zmienić, aby używać nowych nazw modułów i poleceń cmdlet:
Az.Compute\Get-AzVM
Migrowanie zależności manifestu modułu
Moduły, które wyrażają zależności modułów AzureRM za pośrednictwem pliku manifestu modułu (psd1), będą musiał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
Usunięto następujące moduły:
AzureRM.BackupAzureRM.Compute.ManagedServiceAzureRM.Scheduler
Narzędzia dla tych usług nie są już aktywnie obsługiwane. Klienci są zachęcani do przejścia do alternatywnych usług, gdy tylko jest to wygodne.
Windows PowerShell 5.1 oraz .NET 4.7.2
Używanie modułu Az z programem PowerShell 5.1 dla Windows wymaga zainstalowania programu .NET Framework 4.7.2. Korzystanie z programu PowerShell Core 6.x lub nowszego nie wymaga platformy .NET Framework.
Tymczasowe wyłączenie logowania użytkownika za pomocą PSCredential
Ze względu na zmiany w przepływie uwierzytelniania dla .NET Standard tymczasowo usuwamy logowanie użytkownika za pośrednictwem pliku PSCredential. Ta funkcja zostanie ponownie wprowadzona w wersji 1.15.2019 dla programu PowerShell 5.1 dla Windows. Omówiono to szczegółowo w tej kwestii GitHub.
Domyślne logowanie za pomocą kodu urządzenia zamiast monitu przeglądarki internetowej
Ze względu na zmiany w przepływie uwierzytelniania dla .NET Standard używamy logowania urządzenia jako domyślnego przepływu logowania podczas logowania interakcyjnego. Logowanie oparte na przeglądarce internetowej zostanie ponownie wprowadzone dla programu PowerShell 5.1 dla Windows jako domyślne w wersji 1.15.2019. W tym czasie użytkownicy będą mogli wybrać logowanie urządzenia przy użyciu parametru Switch.
Zmiany zakłócające zgodność modułów
Ta sekcja zawiera szczegółowe informacje o zmianach powodujących niezgodność dla poszczególnych modułów i poleceń cmdlet.
Az.ApiManagement (wcześniej AzureRM.ApiManagement)
- Usunięto następujące polecenia cmdlet:
- New-AzureRmApiManagementHostnameConfiguration (Nowa konfiguracja hosta zarządzania API w AzureRm)
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Użyj polecenia cmdlet Set-AzApiManagement , aby ustawić te właściwości zamiast tego
- Usunięto następujące właściwości:
- Usunięto właściwości
PortalHostnameConfiguration,ProxyHostnameConfiguration,ManagementHostnameConfigurationiScmHostnameConfigurationtypuPsApiManagementHostnameConfigurationzPsApiManagementContext. Zamiast tego użyjPortalCustomHostnameConfiguration,ProxyCustomHostnameConfiguration,ManagementCustomHostnameConfigurationiScmCustomHostnameConfigurationtypuPsApiManagementCustomHostNameConfiguration. - Usunięto właściwość
StaticIPsz elementu PsApiManagementContext. Właściwość została podzielona naPublicIPAddressesiPrivateIPAddresses. - Usunięto wymaganą właściwość
Locationz polecenia cmdlet New-AzureApiManagementVirtualNetwork.
- Usunięto właściwości
Az.Billing (wcześniej AzureRM.Billing, AzureRM.Consumption i AzureRM.UsageAggregates)
- Parametr
InvoiceNamezostał usunięty z poleceniaGet-AzConsumptionUsageDetailcmdletu. Skrypty będą musiały używać innych parametrów tożsamości dla faktury.
Az.CognitiveServices (wcześniej AzureRM.CognitiveServices)
- Usunięto
GetSkusWithAccountParamSetNamezestaw parametrów zGet-AzCognitiveServicesAccountSkuspolecenia cmdlet. Zamiast używać właściwości ResourceGroupName i Account Name, trzeba pobrać jednostki SKU według typu konta i lokalizacji.
Az.Compute (wcześniej AzureRM.Compute)
-
IdentityIdssą usuwane z właściwościIdentityw obiektachPSVirtualMachineiPSVirtualMachineScaleSet. Skrypty nie powinny już używać wartości tego pola do podejmowania decyzji dotyczących przetwarzania. - Typ
InstanceViewwłaściwościPSVirtualMachineScaleSetVMobiektu jest zmieniany zVirtualMachineInstanceViewnaVirtualMachineScaleSetVMInstanceView - Właściwości
AutoOSUpgradePolicyiAutomaticOSUpgradesą usuwane z właściwościUpgradePolicy - Typ
Skuwłaściwości wPSSnapshotUpdateobiekcie jest zmieniany zDiskSkunaSnapshotSku -
VmScaleSetVMParameterSetjest usunięty z polecenia cmdletAdd-AzVMDataDisk, co uniemożliwia indywidualne dodanie dysku danych do maszyny wirtualnej ScaleSet.
Az.DataFactory (wcześniej AzureRM.DataFactories i AzureRM.DataFactoryV2)
- Parametr
GatewayNamejest obowiązkowy w cmdlecieNew-AzDataFactoryEncryptValue - Usunięto
New-AzDataFactoryGatewayKeypolecenie cmdlet - Usunięto
LinkedServiceNameparametr zGet-AzDataFactoryV2ActivityRunpolecenia cmdlet. Scripts 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)
Następujące polecenia cmdlet zmieniły
Encodingparametr z typuFileSystemCmdletProviderEncodingnaSystem.Text.Encoding. Ta zmiana usuwa wartościStringiOemkodowania. Pozostałe poprzednie wartości kodowania pozostają.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent (polecenie)
Usunięto przestarzały alias właściwości
Tagsz poleceń cmdletNew-AzDataLakeStoreAccountiSet-AzDataLakeStoreAccountSkrypty korzystające z
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,FirewallAllowAzureIpsz obiektuPSDataLakeStoreAccountBasic. Każdy skrypt używający zwróconegoPSDatalakeStoreAccountzGet-AzDataLakeStoreAccountnie powinien odwoływać się do tych właściwości.
Az.KeyVault (wcześniej AzureRM.KeyVault)
- Właściwość
PurgeDisabledzostała usunięta z obiektówPSKeyVaultKeyAttributes,PSKeyVaultKeyIdentityItem, iPSKeyVaultSecretAttributes. Skrypty nie powinny już odwoływać się do właściwościPurgeDisabledw celu podejmowania decyzji dotyczących przetwarzania.
Az.Media (wcześniej AzureRM.Media)
Usuwanie przestarzałego
Tagsaliasu właściwości zNew-AzMediaServiceskryptów poleceń cmdlet przy użyciu polecenia cmdletNew-AzureRMMediaService -Tags @{TagName="TagValue"}Należy zmienić na
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (wcześniej AzureRM.Insights)
Usunięto nazwy parametru
CategoriesiTimegrainsna rzecz pojedynczych nazw parametru z polecenia cmdletSet-AzDiagnosticSetting.Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2Należy zmienić na
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (wcześniej AzureRM.Network)
- Usunięto przestarzały
ResourceIdparametr z cmdletGet-AzServiceEndpointPolicyDefinition - Usunięto przestarzałą
EnableVmProtectionwłaściwość zPSVirtualNetworkobiektu - Usunięto przestarzałe
Set-AzVirtualNetworkGatewayVpnClientConfigcmdlet
Skrypty nie powinny już podejmować decyzji dotyczących przetwarzania na podstawie wartości tych pól.
Az.OperationalInsights (wcześniej AzureRM.OperationalInsights)
Domyślny zestaw parametrów
Get-AzOperationalInsightsDataSourcezostał usunięty, aByWorkspaceNameByKindstał się nowym domyślnym zestawem parametrówSkrypty, które wymieniały źródła danych za pomocą
Get-AzureRmOperationalInsightsDataSourceNależy zmienić, aby określić rodzaj
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (wcześniej AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup i AzureRM.RecoveryServices.SiteRecovery)
- Usunięto parametr
Encryptionz poleceniaNew/Set-AzRecoveryServicesAsrPolicycmdlet -
TargetStorageAccountNameParametr jest teraz obowiązkowy przy przywracaniu zarządzanych dysków w poleceniu cmdletRestore-AzRecoveryServicesBackupItem - Usunięto parametry
StorageAccountNameiStorageAccountResourceGroupNamew poleceniu cmdletRestore-AzRecoveryServicesBackupItem - Usunięto
Nameparametr wGet-AzRecoveryServicesBackupContainerpoleceniu cmdlet
Az.Resources (wcześniej AzureRM.Resources)
Usunięto
Skuparametr z cmdlet-uNew/Set-AzPolicyAssignmentUsunięto parametr
Passwordz cmdletNew-AzADServicePrincipal, a hasła dlaNew-AzADSpCredentialsą generowane automatycznie; skrypty, które dostarczyły hasło:New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -Password $secPasswordNależy zmienić, aby pobrać hasło z danych wyjściowych:
$credential = New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 $secPassword = $credential.Secret
Az.ServiceFabric (wcześniej AzureRM.ServiceFabric)
- Zmieniono następujące typy zwracanych poleceń cmdlet:
- Właściwość
ServiceTypeHealthPoliciestypuApplicationHealthPolicyzostała usunięta. - Właściwość
ApplicationHealthPoliciestypuClusterUpgradeDeltaHealthPolicyzostała usunięta. - Właściwość
OverrideUserUpgradePolicytypuClusterUpgradePolicyzostał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
StateiResourceIdz polecenia cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy - Usunięto przestarzałe cmdlety:
Get/Set-AzSqlServerBackupLongTermRetentionVault,Get/Start/Stop-AzSqlServerUpgrade,Get/Set-AzSqlDatabaseAuditingPolicy,Get/Set-AzSqlServerAuditingPolicy,Remove-AzSqlDatabaseAuditing,Remove-AzSqlServerAuditing - Usunięto przestarzały parametr
Currentz polecenia typuGet-AzSqlDatabaseBackupLongTermRetentionPolicycmdlet - Usunięto przestarzały parametr
DatabaseNamez poleceniaGet-AzSqlServerServiceObjectivecmdlet. - Usunięto przestarzały parametr
PrivilegedLoginz polecenia cmdletuSet-AzSqlDatabaseDataMaskingPolicy
Az.Storage (wcześniej Azure. Storage i AzureRM.Storage)
- Aby obsługiwać tworzenie kontekstu magazynu Oauth z tylko nazwą konta magazynu, domyślny zestaw parametrów został zmieniony na
OAuthParameterSet- Przykład:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Przykład:
- Parametr
Locationstał się obowiązkowy w poleceniuGet-AzStorageUsagecmdlet - Metody interfejsu API Storage teraz używają wzorca asynchronicznego opartego na zadaniach (TAP) zamiast synchronicznych wywołań API. W poniższych przykładach przedstawiono nowe polecenia asynchroniczne:
Migawka obiektu blob
Moduł 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
Migawka do udostępniania
Moduł 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
Przywrócenie słabo usuniętego obiektu blob
Moduł 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
Moduł 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
PSAppServicePlanobiektów ,PSCertificate,PSCloningInfoiPSSite