Udostępnij za pośrednictwem


Zmiany powodujące niezgodność dla modułu 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 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 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.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 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, ManagementHostnameConfiguration i ScmHostnameConfiguration typu PsApiManagementHostnameConfiguration z PsApiManagementContext. Zamiast tego użyj PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration i ScmCustomHostnameConfiguration typu PsApiManagementCustomHostNameConfiguration.
    • Usunięto właściwość StaticIPs 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 Get-AzConsumptionUsageDetail cmdletu. Skrypty będą musiały używać innych parametrów tożsamości dla faktury.

Az.CognitiveServices (wcześniej AzureRM.CognitiveServices)

  • Usunięto GetSkusWithAccountParamSetName zestaw parametrów z Get-AzCognitiveServicesAccountSkus polecenia 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)

  • 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 InstanceView właściwości PSVirtualMachineScaleSetVM obiektu jest zmieniany z VirtualMachineInstanceView na VirtualMachineScaleSetVMInstanceView
  • Właściwości AutoOSUpgradePolicy i AutomaticOSUpgrade są usuwane z właściwości UpgradePolicy
  • Typ Sku właściwości w PSSnapshotUpdate obiekcie jest zmieniany z DiskSku na SnapshotSku
  • VmScaleSetVMParameterSet jest usunięty z polecenia cmdlet Add-AzVMDataDisk, co uniemożliwia indywidualne dodanie dysku danych do maszyny wirtualnej ScaleSet.

Az.DataFactory (wcześniej AzureRM.DataFactories i AzureRM.DataFactoryV2)

  • Parametr GatewayName jest obowiązkowy w cmdlecie New-AzDataFactoryEncryptValue
  • Usunięto New-AzDataFactoryGatewayKey polecenie cmdlet
  • Usunięto LinkedServiceName parametr z Get-AzDataFactoryV2ActivityRun polecenia 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, i Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (wcześniej AzureRM.DataLakeStore)

  • Następujące polecenia cmdlet zmieniły Encoding parametr z typu FileSystemCmdletProviderEncoding na System.Text.Encoding. Ta zmiana usuwa wartości String i Oem kodowania. Pozostałe poprzednie wartości kodowania pozostają.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent (polecenie)
  • 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 używający zwróconego PSDatalakeStoreAccount z 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 obiektów PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem, i 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 Tags aliasu właściwości z New-AzMediaService skryptów poleceń cmdlet przy użyciu polecenia cmdlet

    New-AzureRMMediaService -Tags @{TagName="TagValue"}
    

    Należy zmienić na

    New-AzMediaService -Tag @{TagName="TagValue"}
    

Az.Monitor (wcześniej AzureRM.Insights)

  • Usunięto nazwy parametru Categories i Timegrains na rzecz pojedynczych nazw parametru z polecenia 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 ResourceId parametr z cmdlet Get-AzServiceEndpointPolicyDefinition
  • Usunięto przestarzałą EnableVmProtection właściwość z PSVirtualNetwork obiektu
  • Usunięto przestarzałe Set-AzVirtualNetworkGatewayVpnClientConfig cmdlet

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-AzOperationalInsightsDataSource został usunięty, a ByWorkspaceNameByKind stał się nowym domyślnym zestawem parametrów

    Skrypty, które wymieniały źródła danych za pomocą

    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 New/Set-AzRecoveryServicesAsrPolicy cmdlet
  • TargetStorageAccountName Parametr jest teraz obowiązkowy przy przywracaniu zarządzanych dysków w poleceniu cmdlet Restore-AzRecoveryServicesBackupItem
  • Usunięto parametry StorageAccountName i StorageAccountResourceGroupName w poleceniu cmdlet Restore-AzRecoveryServicesBackupItem
  • Usunięto Nameparametr w Get-AzRecoveryServicesBackupContainer poleceniu cmdlet

Az.Resources (wcześniej AzureRM.Resources)

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

  • Usunięto parametr Password z cmdlet New-AzADServicePrincipal, a hasła dla New-AzADSpCredential są generowane automatycznie; skrypty, które dostarczyły hasło:

    New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -Password $secPassword
    

    Należ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ść 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 cmdlety: 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 typu Get-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet
  • Usunięto przestarzały parametr DatabaseName z polecenia Get-AzSqlServerServiceObjective cmdlet.
  • Usunięto przestarzały parametr PrivilegedLogin z polecenia cmdletu Set-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
  • Parametr Location stał się obowiązkowy w poleceniu Get-AzStorageUsage cmdlet
  • 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, PSCloningInfoi PSSite