Zmiany powodujące niezgodność w module Az 1.0.0
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 migracji z modułu AzureRM do modułu Az, zobacz Rozpoczynanie migracji z modułu AzureRM do modułu Az.
Ważny
Wprowadzono również istotne zmiany powodujące niezgodność między wersjami Az 1.0.0 i Az 2.0.0. Po wykonaniu tego przewodnika dotyczącego aktualizowania z modułu AzureRM do modułu Az, zapoznaj się z zmianami wprowadzającymi niezgodności w Az 2.0.0, aby dowiedzieć się, czy musisz wprowadzić dodatkowe zmiany.
Spis treści
- Ogólne zmiany łamiące kompatybilność
- zmiany wpływające na zgodność modułu
- 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 rzeczowników polecenia cmdlet
W module AzureRM polecenia cmdlet używały AzureRM
lub Azure
jako prefiksu rzeczownikowego. Moduł Az upraszcza i normalizuje nazwy poleceń cmdlet, dzięki czemu wszystkie używają "Az" jako prefiksu rzeczownika dla poleceń cmdlet. Na 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 oraz Disable-AzureRmAlias.
Enable-AzureRmAlias
tworzy aliasy dla starszych nazw poleceń cmdlet w module AzureRM, które są mapowane na nowsze nazwy poleceń cmdlet Az. Użycie argumentu -Scope
z Enable-AzureRmAlias
pozwala wybrać, gdzie są włączone aliasy.
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 sesji PowerShell, które otworzysz, tak aby po uruchomieniu tego polecenia, skrypt taki jak ten nie musiał być w ogóle zmieniany:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Aby uzyskać szczegółowe informacje na temat użycia aliasów cmdletów, zobacz dokumentację Enable-AzureRmAlias.
Gdy wszystko będzie gotowe do wyłączenia aliasów, Disable-AzureRmAlias
usuwa utworzone aliasy. Aby uzyskać szczegółowe informacje, zobacz Disable-AzureRmAlias reference.
Ważny
Podczas wyłączania aliasów upewnij się, że są one wyłączone dla wszystkich zakresów, które miały włączone aliasy.
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.Billing |
Zmiany w nazwach modułów oznaczają, że każdy skrypt używający #Requires
lub Import-Module
do ładowania określonych modułów będzie musiał 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 się zmieniła, sufiks wskazujący przestrzeń operacyjną pozostaje , a nie.
Migrowanie instrukcji #Requires i Import-Module
Skrypty używające #Requires
lub Import-Module
do deklarowania zależności od modułów AzureRM muszą zostać zaktualizowane w celu używania nowych nazw modułów. Na 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 wywołań poleceń cmdlet Fully-Qualified
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 cmdletów.
Az.Compute\Get-AzVM
Migrowanie zależności manifestu modułu
Moduły, które wyrażają zależności od 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.Backup
AzureRM.Compute.ManagedService
AzureRM.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 i .NET 4.7.2
Użycie modułu Az z programem PowerShell 5.1 dla systemu Windows wymaga zainstalowania programu .NET Framework 4.7.2. Korzystanie z programu PowerShell Core 6.x lub nowszego nie wymaga programu .NET Framework.
Tymczasowe usunięcie logowania użytkownika przy użyciu PSCredential
Ze względu na zmiany w przepływie uwierzytelniania dla platformy .NET Standard tymczasowo usuwamy logowanie użytkownika za pośrednictwem programu PSCredential. Ta funkcja zostanie ponownie wprowadzona w wersji 1.15.2019 dla programu PowerShell 5.1 dla systemu Windows. Omówiono to szczegółowo w tym problemie z usługą 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 zostanie ponownie wprowadzone dla programu PowerShell 5.1 dla systemu Windows jako domyślne w wersji z dnia 15.01.2019. W tym czasie użytkownicy będą mogli wybrać logowanie urządzenia przy użyciu parametru Switch.
Zmiany powodujące niezgodność modułów
Ta sekcja zawiera szczegółowe informacje o niekompatybilnych zmianach dla poszczególnych modułów i komend cmdlet.
Az.ApiManagement (wcześniej AzureRM.ApiManagement)
- Usunięto następujące polecenia cmdlet:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Użyj polecenia cmdlet Set-AzApiManagement, aby ustawić te właściwości
- Usunięto następujące właściwości:
- Usunięto właściwości
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
iScmHostnameConfiguration
typuPsApiManagementHostnameConfiguration
zPsApiManagementContext
. Zamiast tego należy użyćPortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
iScmCustomHostnameConfiguration
typuPsApiManagementCustomHostNameConfiguration
. - Usunięto
StaticIPs
właściwości z elementu PsApiManagementContext. Właściwość została podzielona naPublicIPAddresses
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
. Skrypty będą musiały używać innych parametrów tożsamości dla faktury.
Az.CognitiveServices (wcześniej AzureRM.CognitiveServices)
- Usunięto zestaw parametrów
GetSkusWithAccountParamSetName
z cmdletuGet-AzCognitiveServicesAccountSkus
. Należy pobrać SKU według typu konta i lokalizacji zamiast używać właściwości ResourceGroupName i Account Name.
Az.Compute (wcześniej AzureRM.Compute)
-
IdentityIds
są usuwane 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
jest zmieniany zVirtualMachineInstanceView
naVirtualMachineScaleSetVMInstanceView
- właściwości
AutoOSUpgradePolicy
iAutomaticOSUpgrade
są usuwane z właściwościUpgradePolicy
- Typ właściwości
Sku
w obiekciePSSnapshotUpdate
jest zmieniany zDiskSku
naSnapshotSku
-
VmScaleSetVMParameterSet
jest usuwany z cmdletAdd-AzVMDataDisk
, już nie można dodawać dysku danych indywidualnie do maszyny wirtualnej Scale Set.
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)
Następujące polecenia cmdlet miały parametr
Encoding
zmieniony z typuFileSystemCmdletProviderEncoding
naSystem.Text.Encoding
. Ta zmiana powoduje usunięcie wartości kodowaniaString
iOem
. Pozostałe poprzednie wartości kodowania pozostają.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Usunięto przestarzały alias właściwości
Tags
z poleceń cmdletNew-AzDataLakeStoreAccount
iSet-AzDataLakeStoreAccount
Skrypty 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
,FirewallAllowAzureIps
z obiektuPSDataLakeStoreAccountBasic
. Każdy skrypt, który używaPSDatalakeStoreAccount
zwróconego przezGet-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 zPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
i obiektówPSKeyVaultSecretAttributes
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)
Usuwanie przestarzałego aliasu właściwości
Tags
z polecenia cmdletNew-AzMediaService
przy użyciu skryptówNew-AzureRMMediaService -Tags @{TagName="TagValue"}
Należy zmienić na
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (wcześniej AzureRM.Insights)
Usunięto mnogie nazwy parametrów
Categories
iTimegrains
na rzecz pojedynczych nazw parametrów w skryptach poleceń cmdletSet-AzDiagnosticSetting
.Set-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 cmdletuGet-AzServiceEndpointPolicyDefinition
- Usunięto przestarzałą właściwość
EnableVmProtection
z obiektuPSVirtualNetwork
- Usunięto polecenie cmdlet
Set-AzVirtualNetworkGatewayVpnClientConfig
, które było przestarzałe.
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 dla
Get-AzOperationalInsightsDataSource
jest usuwany, aByWorkspaceNameByKind
stał się domyślnym zestawem parametrówSkrypty, które wymieniały źródła danych przy użyciu
Get-AzureRmOperationalInsightsDataSource
Należ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
Encryption
z polecenia cmdletNew/Set-AzRecoveryServicesAsrPolicy
- parametr
TargetStorageAccountName
jest teraz obowiązkowy w przypadku 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 dostarczały hasło.New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -Password $secPassword
Należy zmienić, aby odzyskać 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ść
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
,Remove-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 przechowywania OAuth tylko przy użyciu nazwy konta przechowywania, 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 poleceniuGet-AzStorageUsage
cmdlet - Metody interfejsu API Storage teraz używają asynchronicznego wzorca opartego na zadaniach (TAP) zamiast synchronicznych wywołań interfejsu 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
Udostępnianie migawki
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óć miękko usunięty 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()
Ustaw poziom 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