Sdílet prostřednictvím


Zásadní změny pro Az 1.0.0

Tento dokument obsahuje podrobné informace o změnách mezi AzureRM 6.x a novým modulem Az verze 1.x a novějším. Obsah vám pomůže provést úplnou cestu migrace, včetně změn specifických pro modul, které můžou ovlivnit vaše skripty.

Obecné rady k zahájení migrace z AzureRM na Az najdete v tématu Zahájení migrace z AzureRM na Az.

Důležitý

Mezi Az 1.0.0 a Az 2.0.0 došlo také k zásadním změnám. Po provedení aktualizace podle této příručky z AzureRM na Az se podívejte na kritické změny v Az 2.0.0 a zjistěte, jestli je potřeba udělat další úpravy.

Obsah

Obecné přelomové změny

Tato část podrobně popisuje obecné zásadní změny, které jsou součástí návrhu modulu Az.

Změny předpon podstatných jmen cmdletů

V modulu AzureRM rutiny použily buď AzureRM, nebo Azure jako předponu podstatného jména. Az zjednodušuje a normalizuje názvy cmdletů tak, aby všechny používaly 'Az' jako svou předponu. Například:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Změnil se na:

Get-AzVM
Get-AzKeyVaultSecret

Aby byl přechod na tyto nové názvy rutin jednodušší, Az zavádí dvě nové rutiny, Enable-AzureRmAlias a Disable-AzureRmAlias. Enable-AzureRmAlias vytvoří aliasy pro starší názvy cmdletů v AzureRM, které se mapují na novější názvy cmdletů Az. Pomocí argumentu -Scope s Enable-AzureRmAlias můžete zvolit, kde jsou povolené aliasy.

Například následující skript v AzureRM:

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

Lze spustit s minimálními změnami pomocí Enable-AzureRmAlias:

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

Spuštěním Enable-AzureRmAlias -Scope CurrentUser povolíte aliasy pro všechny relace PowerShellu, které otevřete, takže po spuštění této rutiny není nutné skript podobného druhu vůbec měnit.

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Úplné podrobnosti o použití aliasových rutin najdete v referenční příručce Enable-AzureRmAlias.

Až budete připraveni zakázat aliasy, Disable-AzureRmAlias odebere vytvořené aliasy. Úplné podrobnosti najdete v referenčním Disable-AzureRmAlias.

Důležitý

Při zakazování aliasů se ujistěte, že jsou zakázány pro všechny obory, u kterých byly aliasy povolené.

Změny názvu modulu

Názvy modulů se změnily z AzureRM.* na Az.*s výjimkou následujících modulů:

Modul AzureRM Modul 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.Billing
AzureRM.Consumption Az.Billing

Změny názvů modulů znamenají, že každý skript, který k načtení konkrétních modulů používá #Requires nebo Import-Module, bude potřeba změnit, aby místo toho používal nový modul. U modulů, u kterých se přípona rutiny nezměnila, to znamená, že i když se změnil název modulu, přípona naznačující operační prostor zůstává jako , nikoli.

Migrace příkazů #Requires a Import-Module

Skripty, které používají #Requires nebo Import-Module k deklaraci závislosti na modulech AzureRM, musí být aktualizovány tak, aby používaly názvy nových modulů. Například:

#Requires -Module AzureRM.Compute

Mělo by se změnit na:

#Requires -Module Az.Compute

Pro Import-Module:

Import-Module -Name AzureRM.Compute

Mělo by se změnit na:

Import-Module -Name Az.Compute

Migrace vyvolávání příkazů cmdlet Fully-Qualified

Skripty, které používají vyvolání rutin s kvalifikovanými moduly, například:

AzureRM.Compute\Get-AzureRmVM

Je nutné změnit, aby se používaly nové názvy modulů a rutin:

Az.Compute\Get-AzVM

Migrace závislostí manifestu modulu

Moduly, které vyjadřují závislosti na modulech AzureRM prostřednictvím souboru manifestu modulu (.psd1), budou muset aktualizovat názvy modulů v jejich RequiredModules části:

RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})

Je nutné změnit na:

RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})

Odebrané moduly

Byly odebrány následující moduly:

  • AzureRM.Backup
  • AzureRM.Compute.ManagedService
  • AzureRM.Scheduler

Nástroje pro tyto služby se už aktivně nepodporují. Zákazníkům se doporučuje přejít na alternativní služby, jakmile bude výhodné.

Windows PowerShell 5.1 a .NET 4.7.2

Použití Az s PowerShellem 5.1 pro Windows vyžaduje instalaci rozhraní .NET Framework 4.7.2. Použití PowerShellu Core 6.x nebo novějšího nevyžaduje rozhraní .NET Framework.

Dočasné odebrání přihlášení uživatele pomocí PSCredential

Vzhledem ke změnám v toku ověřování pro .NET Standard dočasně odebíráme přihlášení uživatele přes PSCredential. Tato funkce se znovu zavede ve verzi 15. 15. 2019 pro PowerShell 5.1 pro Windows. Toto téma je podrobně popsáno v tomto problému na GitHubu.

Výchozí přihlášení pomocí kódu zařízení namísto výzvy webového prohlížeče

Vzhledem ke změnám v toku ověřování pro .NET Standard používáme při interaktivním přihlášení jako výchozí tok přihlášení zařízení. Pro PowerShell 5.1 pro Windows se znovu zavede přihlášení na základě webového prohlížeče jako výchozí ve verzi z 15. 15. 2019. V té době budou uživatelé moct zvolit přihlášení zařízení pomocí parametru Switch.

Přelomové změny modulu

Tato část podrobně popisuje konkrétní zásadní změny pro jednotlivé moduly a cmdlety.

Az.ApiManagement (dříve AzureRM.ApiManagement)

  • Odebrali jsme následující rutiny:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • K nastavení těchto vlastností použijte rutinu Set-AzApiManagement.
  • Odebrali jsme následující vlastnosti:
    • Byly odebrány vlastnosti PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration a ScmHostnameConfiguration typu PsApiManagementHostnameConfiguration z PsApiManagementContext. Místo toho použijte PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration a ScmCustomHostnameConfiguration typu PsApiManagementCustomHostNameConfiguration.
    • Odebraná vlastnost StaticIPs z PsApiManagementContext. Nemovitost byla rozdělena do PublicIPAddresses a PrivateIPAddresses.
    • Odebraná požadovaná vlastnost Location z cmdletu New-AzureApiManagementVirtualNetwork.

Az.Billing (dříve AzureRM.Billing, AzureRM.Consumption a AzureRM.UsageAggregates)

  • Parametr InvoiceName byl z cmdletu Get-AzConsumptionUsageDetail odebrán. Skripty budou muset pro fakturu použít jiné parametry identity.

Az.CognitiveServices (dříve AzureRM.CognitiveServices)

  • Odebrání sady parametrů GetSkusWithAccountParamSetName z rutiny Get-AzCognitiveServicesAccountSkus Musíte získat Sku podle typu účtu a umístění místo použití ResourceGroupName a názvu účtu.

Az.Compute (dříve AzureRM.Compute)

  • IdentityIds jsou odebrány z vlastnosti Identity v objektech PSVirtualMachine a PSVirtualMachineScaleSet. Skripty by již neměly používat hodnotu tohoto pole k rozhodování o zpracování.
  • Typ vlastnosti InstanceView objektu PSVirtualMachineScaleSetVM se změní z VirtualMachineInstanceView na VirtualMachineScaleSetVMInstanceView
  • Vlastnosti AutoOSUpgradePolicy a AutomaticOSUpgrade jsou odebrány z vlastnosti UpgradePolicy.
  • Typ vlastnosti Sku v objektu PSSnapshotUpdate se změní z DiskSku na SnapshotSku
  • VmScaleSetVMParameterSet se odebere z rutiny Add-AzVMDataDisk, už nemůžete do virtuálního počítače ScaleSet přidávat datový disk jednotlivě.

Az.DataFactory (dříve AzureRM.DataFactories a AzureRM.DataFactoryV2)

  • Parametr GatewayName je nyní povinný v rutině New-AzDataFactoryEncryptValue.
  • Odstranil se příkazový rutinník New-AzDataFactoryGatewayKey
  • Odebrán parametr LinkedServiceName z rutiny Get-AzDataFactoryV2ActivityRun cmdletu. Skripty by již neměly používat hodnotu tohoto pole k rozhodování o zpracování.

Az.DataLakeAnalytics (dříve AzureRM.DataLakeAnalytics)

  • Odebrané zastaralé rutiny: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecreta Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (dříve AzureRM.DataLakeStore)

  • Následující cmdlety byly změněny tak, že parametr Encoding je nyní z typu FileSystemCmdletProviderEncoding na System.Text.Encoding. Tato změna odebere kódovací hodnoty String a Oem. Všechny ostatní předchozí hodnoty kódování zůstanou.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Odstraněn zastaralý alias vlastnosti Tags z rutin New-AzDataLakeStoreAccount a Set-AzDataLakeStoreAccount

    Skripty používající

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

    Mělo by se změnit na

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Odebrané zastaralé vlastnosti Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps z objektu PSDataLakeStoreAccountBasic. Všechny skripty, které používají PSDatalakeStoreAccount vrácené z Get-AzDataLakeStoreAccount, by neměly odkazovat na tyto vlastnosti.

Az.KeyVault (dříve AzureRM.KeyVault)

  • Vlastnost PurgeDisabled byla odebrána z objektů PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItema PSKeyVaultSecretAttributes. Skripty by již neměly odkazovat na vlastnost PurgeDisabled při rozhodování o zpracování.

Az.Media (dříve AzureRM.Media)

  • Odstraňte zastaralý alias vlastnosti Tags z New-AzMediaService cmdletu Skripty pomocí

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

    Mělo by se změnit na

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

Az.Monitor (dříve AzureRM.Insights)

  • Odstraněny pluralitní názvy parametrů Categories a Timegrains ve prospěch názvů parametrů v jednotném čísle u skriptů cmdletu Set-AzDiagnosticSetting pomocí

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Mělo by se změnit na

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (dříve AzureRM.Network)

  • Odebrání zastaralého parametru ResourceId z rutiny Get-AzServiceEndpointPolicyDefinition
  • Byla odebrána zastaralá vlastnost EnableVmProtection z objektu PSVirtualNetwork
  • Odebrána zastaralá rutina Set-AzVirtualNetworkGatewayVpnClientConfig

Skripty by už neměly přijímat rozhodnutí o zpracování na základě hodnot uvedených v těchto polích.

Az.OperationalInsights (dříve AzureRM.OperationalInsights)

  • Výchozí sada parametrů pro Get-AzOperationalInsightsDataSource se odebere a ByWorkspaceNameByKind se stane výchozí sadou parametrů.

    Skripty, které uváděly zdroje dat pomocí

    Get-AzureRmOperationalInsightsDataSource
    

    Mělo by se změnit tak, aby bylo možné zadat druh.

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

Az.RecoveryServices (dříve AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup a AzureRM.RecoveryServices.SiteRecovery)

  • Odebrání parametru Encryption z rutiny New/Set-AzRecoveryServicesAsrPolicy
  • parametr TargetStorageAccountName je teď povinný pro obnovení spravovaných disků v rutině Restore-AzRecoveryServicesBackupItem
  • Byly odebrány parametry StorageAccountName a StorageAccountResourceGroupName v rutině Restore-AzRecoveryServicesBackupItem
  • Odebrání parametru Namev rutině Get-AzRecoveryServicesBackupContainer

Az.Resources (dříve AzureRM.Resources)

  • Odebrání parametru Sku z rutiny New/Set-AzPolicyAssignment

  • Byl odebrán parametr Password z rutiny New-AzADServicePrincipal a New-AzADSpCredential. Hesla jsou automaticky generována skripty, které poskytly heslo.

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

    Mělo by se změnit, aby se heslo načítalo z výstupu:

    $credential = New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444
    $secPassword = $credential.Secret
    

Az.ServiceFabric (dříve AzureRM.ServiceFabric)

  • Následující typy návratu příkazů byly změněny:
    • Vlastnost ServiceTypeHealthPolicies typu ApplicationHealthPolicy byla odebrána.
    • Vlastnost ApplicationHealthPolicies typu ClusterUpgradeDeltaHealthPolicy byla odebrána.
    • Vlastnost OverrideUserUpgradePolicy typu ClusterUpgradePolicy byla odebrána.
    • Tyto změny mají vliv na následující rutiny:
      • 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 (dříve AzureRM.Sql)

  • Odstranění parametrů State a ResourceId z cmdletu Set-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Odebrané zastaralé rutiny: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Odebrán zastaralý parametr Current z rutiny Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Odebrán zastaralý parametr DatabaseName z rutiny Get-AzSqlServerServiceObjective
  • Odebrán zastaralý parametr PrivilegedLogin z rutiny Set-AzSqlDatabaseDataMaskingPolicy

Az.Storage (dříve Azure.Storage a AzureRM.Storage)

  • Aby bylo možné podporovat vytváření kontextu úložiště Oauth pouze s názvem účtu úložiště, výchozí sada parametrů se změnila na OAuthParameterSet
    • Příklad: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Parametr Location se stal povinným v rutině Get-AzStorageUsage.
  • Metody rozhraní API úložiště teď místo synchronních volání rozhraní API používají asynchronní vzor založený na úlohách (TAP). Následující příklady ukazují nové asynchronní příkazy:

Snímek blobu

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

Sdílet snímek

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

Obnovení soft smazaného objektu blob

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()

Nastavit úroveň blobu

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 (dříve AzureRM.Websites)

  • Odebrání zastaralých vlastností z objektů PSAppServicePlan, PSCertificate, PSCloningInfoa PSSite