Udostępnij za pośrednictwem


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 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 i ScmHostnameConfiguration typu PsApiManagementHostnameConfiguration z PsApiManagementContext. Zamiast tego należy użyć PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration i ScmCustomHostnameConfiguration typu PsApiManagementCustomHostNameConfiguration.
    • Usunięto StaticIPs właściwości z elementu PsApiManagementContext. Właściwość została podzielona na PublicIPAddresses i PrivateIPAddresses.
    • Usunięto wymaganą właściwość Location z polecenia cmdlet New-AzureApiManagementVirtualNetwork.

Az.Billing (wcześniej AzureRM.Billing, AzureRM.Consumption i AzureRM.UsageAggregates)

  • Parametr InvoiceName został usunięty z polecenia cmdlet Get-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 cmdletu Get-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ści Identity w obiektach PSVirtualMachine i PSVirtualMachineScaleSet. Skrypty nie powinny już używać wartości tego pola do podejmowania decyzji dotyczących przetwarzania.
  • Typ właściwości InstanceView obiektu PSVirtualMachineScaleSetVM jest zmieniany z VirtualMachineInstanceView na VirtualMachineScaleSetVMInstanceView
  • właściwości AutoOSUpgradePolicy i AutomaticOSUpgrade są usuwane z właściwości UpgradePolicy
  • Typ właściwości Sku w obiekcie PSSnapshotUpdate jest zmieniany z DiskSku na SnapshotSku
  • VmScaleSetVMParameterSet jest usuwany z cmdlet Add-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 cmdlet New-AzDataFactoryEncryptValue.
  • Usunięto polecenie cmdlet New-AzDataFactoryGatewayKey
  • Usunięto parametr LinkedServiceName z polecenia cmdlet Get-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-AzDataLakeAnalyticsCatalogSecreti Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (wcześniej AzureRM.DataLakeStore)

  • Następujące polecenia cmdlet miały parametr Encoding zmieniony z typu FileSystemCmdletProviderEncoding na System.Text.Encoding. Ta zmiana powoduje usunięcie wartości kodowania String i Oem. 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ń cmdlet New-AzDataLakeStoreAccount i Set-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 obiektu PSDataLakeStoreAccountBasic. Każdy skrypt, który używa PSDatalakeStoreAccount zwróconego przez Get-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 PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItemi obiektów PSKeyVaultSecretAttributes Skrypty nie powinny już odwoływać się do właściwości PurgeDisabled w celu podejmowania decyzji dotyczących przetwarzania.

Az.Media (wcześniej AzureRM.Media)

  • Usuwanie przestarzałego aliasu właściwości Tags z polecenia cmdlet New-AzMediaService przy użyciu skryptów

    New-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 i Timegrains na rzecz pojedynczych nazw parametrów w skryptach poleceń cmdlet Set-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 cmdletu Get-AzServiceEndpointPolicyDefinition
  • Usunięto przestarzałą właściwość EnableVmProtection z obiektu PSVirtualNetwork
  • 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, a ByWorkspaceNameByKind stał się domyślnym zestawem parametrów

    Skrypty, 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 cmdlet New/Set-AzRecoveryServicesAsrPolicy
  • parametr TargetStorageAccountName jest teraz obowiązkowy w przypadku przywracania dysku zarządzanego w poleceniu cmdlet Restore-AzRecoveryServicesBackupItem
  • Usunięto parametry StorageAccountName i StorageAccountResourceGroupName w poleceniu cmdlet Restore-AzRecoveryServicesBackupItem
  • Usunięto parametr Namew poleceniu cmdlet Get-AzRecoveryServicesBackupContainer

Az.Resources (wcześniej AzureRM.Resources)

  • Usunięto parametr Sku z polecenia cmdlet New/Set-AzPolicyAssignment

  • Usunięto parametr Password z poleceń cmdlet New-AzADServicePrincipal i New-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 typu ApplicationHealthPolicy została usunięta.
    • Właściwość ApplicationHealthPolicies typu ClusterUpgradeDeltaHealthPolicy została usunięta.
    • Właściwość OverrideUserUpgradePolicy typu ClusterUpgradePolicy 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

Az.Sql (wcześniej AzureRM.Sql)

  • Usunięto parametry State i ResourceId z polecenia cmdlet Set-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 cmdlet Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Usunięto przestarzały parametr DatabaseName z polecenia cmdlet Get-AzSqlServerServiceObjective.
  • Usunięto przestarzały parametr PrivilegedLogin z polecenia cmdlet Set-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
  • Parametr Location stał się obowiązkowy w poleceniu Get-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, PSCloningInfoi PSSite