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 powodujące niezgodność modułu Az 2.0.0 , aby dowiedzieć się, czy trzeba wprowadzić dodatkowe zmiany.

Spis treści

  • Ogólne zmiany powodujące niezgodność
    • Zmiany prefiksu rzeczownika cmdlet
    • Zmiany nazwy modułu
    • Usunięte moduły
    • Windows PowerShell 5.1 i .NET 4.7.2
    • Tymczasowe usunięcie logowania użytkownika przy użyciu obiektu PSCredential
    • Domyślne logowanie za pomocą kodu urządzenia zamiast monitu przeglądarki internetowej
  • Zmiany zakłócające zgodność 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, moduł Az wprowadza dwa nowe polecenia cmdlet, Enable-AzureRmAlias i Disable-AzureRmAlias. Tworzy aliasy dla starszych nazw poleceń cmdlet w module AzureRM, które są mapowane na nowsze nazwy poleceń cmdlet w module Az. Użycie argumentu pozwala wybrać miejsce, w którym są włączone aliasy.

Na przykład następujący skrypt w module AzureRM:

#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Da się uruchomić przy minimalnych zmianach przy użyciu polecenia :

#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Uruchomienie spowoduje włączenie aliasów dla wszystkich otwartych sesji programu PowerShell, dzięki czemu po wykonaniu tego cmdlet skrypt taki nie będzie musiał być zmieniany.

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Aby uzyskać szczegółowe informacje na temat użycia cmdletów aliasów, zobacz dokumentację Enable-AzureRmAlias.

Gdy wszystko będzie gotowe do wyłączenia aliasów, usuwa utworzone aliasy. Aby uzyskać szczegółowe informacje, zobacz 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 na , 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 lub 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 uległa zmianie, sufiks wskazujący, że miejsce operacji nie zostało zmienione.

Migrowanie instrukcji #Requires i Import-Module

Skrypty korzystające z modułów AzureRM lub deklarujące zależność muszą zostać zaktualizowane w celu używania nowych nazw modułów. Przykład:

#Requires -Module AzureRM.Compute

Należy zmienić na:

#Requires -Module Az.Compute

Dla :

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 = @(@{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ż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 tym zgłoszeniu na GitHubie.

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ść i typu z <źródło>. Zamiast tego należy użyć elementów , , i , typu .
    • Usunięto właściwość z elementu PsApiManagementContext. Właściwość została podzielona na wartości i .
    • Usunięto wymaganą właściwość z polecenia cmdlet New-AzureApiManagementVirtualNetwork.

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

  • Parametr został usunięty z polecenia cmdlet . 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 z 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)

  • są usuwane z właściwości w obiektach, a skrypty nie powinny już używać wartości tego pola do podejmowania decyzji dotyczących przetwarzania.
  • Typ właściwości obiektu jest zmieniany z na
  • właściwości [nazwa_właściwości_1] i [nazwa_właściwości_2] są usuwane z [nazwa_właściwości_3]
  • Typ właściwości w obiekcie jest zmieniany z na
  • Polecenie dodawania dysku danych zostało usunięte z cmdlet, co uniemożliwia teraz indywidualne dodawanie dysków danych do maszyn wirtualnych w zestawie skalowania.

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

  • Parametr stał się obowiązkowy w poleceniu cmdlet
  • Usunięto cmdlet
  • Usunięto parametr z cmdlet. Scripty nie powinny już używać wartości tego pola do podejmowania decyzji dotyczących przetwarzania danych.

Az.DataLakeAnalytics (wcześniej AzureRM.DataLakeAnalytics)

  • Usunięto przestarzałe cmdlety: , , i

Az.DataLakeStore (wcześniej AzureRM.DataLakeStore)

  • Następujące polecenia cmdlet zmieniły parametr z typu na . Ta zmiana powoduje usunięcie wartości kodowania i . Pozostałe poprzednie wartości kodowania pozostają.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent (polecenie)
  • Usunięto przestarzały alias właściwości z poleceń cmdlet X i Y.

    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 z obiektu: , , , , , , , , , , , , . Każdy skrypt używający zwróconego elementu nie powinien odwoływać się do tych właściwości.

Az.KeyVault (wcześniej AzureRM.KeyVault)

  • Właściwość została usunięta z obiektów , i . Skrypty nie powinny już odwoływać się do właściwości w celu podejmowania decyzji dotyczących przetwarzania.

Az.Media (wcześniej AzureRM.Media)

  • Usuwanie przestarzałego aliasu właściwości z 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 parametrów w liczbie mnogiej na rzecz nazw pojedynczych w skryptach z poleceniami cmdlet.

    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 z polecenia cmdlet
  • Usunięto przestarzałą właściwość z obiektu
  • Usunięto przestarzałe polecenie 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 dla [placeholder 1] jest usuwany, a [placeholder 2] stał się 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 z polecenia cmdlet.
  • Parametr jest teraz obowiązkowy przy przywracaniu dysku zarządzanego w poleceniu cmdlet.
  • W poleceniu cmdlet usunięto parametry i .
  • Usunięto parametr w poleceniu cmdlet

Az.Resources (wcześniej AzureRM.Resources)

  • Usunięto parametr z polecenia cmdlet.

  • Usunięto parametr z poleceń cmdlet i hasła są generowane automatycznie, skrypty, które dostarczyły hasło:

    New-AzAdSpCredential -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -Password $secPassword
    

    Należy zmienić, aby pobrać hasło z danych wyjściowych:

    $credential = New-AzAdSpCredential -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    $secPassword = $credential.Secret
    

Az.ServiceFabric (wcześniej AzureRM.ServiceFabric)

  • Zmieniono następujące typy zwracanych poleceń cmdlet:
    • Właściwość typu została usunięta.
    • Właściwość typu została usunięta.
    • Właściwość typu 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 oraz z polecenia cmdlet.
  • Usunięto przestarzałe polecenia cmdlet: , , , , ,
  • Usunięto przestarzały parametr z polecenia cmdlet
  • Usunięto przestarzały parametr z polecenia cmdlet
  • Usunięto przestarzały parametr z polecenia cmdlet.

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
    • Przykład:
  • Parametr stał się obowiązkowy w poleceniu 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 obiektów , , , i .