Zásadní změny v 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 nebo novější. Obsah vám pomůže zorientovat se v celé cestě k migraci, včetně změn specifických pro jednotlivé moduly, které můžou mít vliv na 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é

Došlo také k zásadním změnám mezi Az 1.0.0 a Az 2.0.0. Až si projdete tohoto průvodce aktualizací z AzureRM na Az, projděte si zásadní změny v Az 2.0.0 a zjistěte, jestli je potřeba provést další změny.

Obsah

Obecné zásadní změny

Tato část podrobně popisuje obecné zásadní změny v souvislosti s přepracováním modulu Az.

Změny předpon rutin

V modulu AzureRM rutiny jako předponu používaly AzureRM nebo Azure. Az názvy rutin zjednodušuje a normalizuje, aby všechny rutiny jako předponu používaly Az. Příklad:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Po změně:

Get-AzVM
Get-AzKeyVaultSecret

Pro zjednodušení přechodu na tyto nové názvy rutin Az zavádí dvě nové rutiny – Enable-AzureRmAlias a Disable-AzureRmAlias. Enable-AzureRmAlias vytvoří aliasy pro starší názvy rutin v AzureRM, které se mapují na novější názvy rutin Az. Pomocí argumentu -Scope v rutině Enable-AzureRmAlias můžete zvolit, kde se mají aliasy povolit.

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

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

je možné spustit s minimálními změnami s využitím rutiny Enable-AzureRmAlias:

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

Spuštěním rutiny Enable-AzureRmAlias -Scope CurrentUser se povolí aliasy pro všechny relace PowerShellu, které otevřete, aby nebylo nutné nijak měnit podobné skripty:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Úplné podrobnosti o používání aliasů rutin najdete v referenčních informacích k rutině Enable-AzureRmAlias.

Jakmile budete připraveni zakázat aliasy, rutinou Disable-AzureRmAlias se odeberou vytvořené aliasy. Úplné podrobnosti najdete v referenčních informacích k rutině Disable-AzureRmAlias.

Důležité

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

Změny názvů modulů

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 v názvech modulů znamenají, že všechny skripty, které k načtení konkrétních modulů používají příkazy #Requires a Import-Module, bude potřeba změnit tak, aby místo toho používaly nové názvy modulů. Pro moduly, ve kterých se přípona rutiny nezměnila, to znamená, že i když se změnil název modulu, přípona označující pracovní prostor se nezměnila.

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

Skripty, které pomocí příkazu #Requires nebo Import-Module deklarují závislost na modulech AzureRM, je potřeba aktualizovat tak, aby používaly nové názvy modulů. Příklad:

#Requires -Module AzureRM.Compute

je potřeba změnit na:

#Requires -Module Az.Compute

Pro Import-Module:

Import-Module -Name AzureRM.Compute

je potřeba změnit na:

Import-Module -Name Az.Compute

Migrace plně kvalifikovaných volání rutin

Skripty, které používají plně kvalifikovaná volání rutin, jako například:

AzureRM.Compute\Get-AzureRmVM

je potřeba změnit tak, aby používaly nové názvy modulů a rutin:

Az.Compute\Get-AzVM

Migrace závislostí manifestu modulu

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

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

je potřeba změnit na:

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

Odebrané moduly

Následující moduly se odebraly:

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

Nástroje pro tyto služby se už aktivně nepodporují. Doporučujeme zákazníkům co nejdříve přejít na alternativní služby.

Windows PowerShell 5.1 a .NET 4.7.2

K používání Az s PowerShellem 5.1 pro Windows se vyžaduje instalace rozhraní .NET Framework 4.7.2. K používání PowerShellu Core 6.x nebo novějšího se rozhraní .NET Framework nevyžaduje.

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

Kvůli změnám v toku ověřování pro .NET Standard dočasně odebíráme možnost přihlášení uživatele prostřednictvím objektu PSCredential. Tato možnost bude znovu zavedená ve verzi PowerShellu 5.1 pro Windows vydané 15. 1. 2019. Podrobnosti najdete u tohoto problému na GitHubu.

Výchozí přihlášení kódem zařízení místo výzvy ve webovém prohlížeči

Kvůli změnám v toku ověřování pro .NET Standard jako výchozí tok přihlášení při interaktivním přihlašování používáme přihlášení zařízení. Přihlášení ve webovém prohlížeči jako výchozí možnost bude znovu zavedeno ve verzi PowerShellu 5.1 pro Windows vydané 15. 1. 2019. Uživatelé pak budou mít možnost zvolit přihlášení zařízení pomocí přepínacího parametru.

Zásadní změny modulů

Tato část podrobně popisuje konkrétní zásadní změny jednotlivých modulů a rutin.

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í místo toho použijte rutinu Set-AzApiManagement.
  • Odebrali jsme následující vlastnosti:
    • Odebrání vlastností PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration a ScmHostnameConfiguration typu PsApiManagementHostnameConfiguration z třídy PsApiManagementContext. Místo toho použijte PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration a ScmCustomHostnameConfiguration typu PsApiManagementCustomHostNameConfiguration.
    • Odebrání vlastnosti StaticIPs z třídy PsApiManagementContext. Tato vlastnost se rozdělila na PublicIPAddresses a PrivateIPAddresses.
    • Odebrání požadované vlastnosti Location z rutiny New-AzureApiManagementVirtualNetwork.

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

  • Z rutiny Get-AzConsumptionUsageDetail se odebral parametr InvoiceName. Skripty budou muset pro práci s fakturou používat jiné parametry identity.

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

  • Odebrání sady parametrů GetSkusWithAccountParamSetName z rutiny Get-AzCognitiveServicesAccountSkus. K získání skladových položek musíte místo názvu skupiny prostředků a názvu účtu použít typ účtu a umístění.

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

  • Z vlastnosti Identity v objektech PSVirtualMachine a PSVirtualMachineScaleSet se odebraly hodnoty IdentityIds. Skripty už by se při zpracování neměly rozhodovat podle hodnoty tohoto pole.
  • Typ vlastnosti InstanceView objektu PSVirtualMachineScaleSetVM se změnil z VirtualMachineInstanceView na VirtualMachineScaleSetVMInstanceView.
  • Z vlastnosti UpgradePolicy se odebraly vlastnosti AutoOSUpgradePolicy a AutomaticOSUpgrade.
  • Typ vlastnosti Sku v objektu PSSnapshotUpdate se změnil z DiskSku na SnapshotSku.
  • VmScaleSetVMParameterSet se odebrala z rutiny Add-AzVMDataDisk a už není možné přidávat datové disky do jednotlivých virtuálních počítačů škálovacích sad.

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

  • Parametr GatewayName se stal povinným v rutině New-AzDataFactoryEncryptValue.
  • Odebrání rutiny New-AzDataFactoryGatewayKey.
  • Odebrání parametru LinkedServiceName z rutiny Get-AzDataFactoryV2ActivityRun. Skripty už by se při zpracování neměly rozhodovat podle hodnoty tohoto pole.

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

  • Odebrání zastaralých rutin: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecret a Set-AzDataLakeAnalyticsCatalogSecret.

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

  • U následujících rutin se změnil typ parametru Encoding z FileSystemCmdletProviderEncoding na System.Text.Encoding. Tato změna odebírá hodnoty kódování String a Oem. Všechny ostatní předchozí hodnoty kódování zůstávají.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Odebrání zastaralého aliasu vlastnosti Tags z rutin New-AzDataLakeStoreAccount a Set-AzDataLakeStoreAccount.

    Skripty používající

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

    je potřeba změnit na

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Odebrání zastaralých vlastností Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier a FirewallAllowAzureIps z objektu PSDataLakeStoreAccountBasic. Na tyto vlastnosti by neměly odkazovat žádné skripty, které používají objekt PSDatalakeStoreAccount vrácený z rutiny Get-AzDataLakeStoreAccount.

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

  • Z objektů PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem a PSKeyVaultSecretAttributes se odebrala vlastnost PurgeDisabled. Skripty už by se při zpracování neměly rozhodovat podle vlastnosti PurgeDisabled.

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

  • Odebrání zastaralého aliasu vlastnosti Tags z rutiny New-AzMediaService. Skripty používající

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

    je potřeba změnit na

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

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

  • Odebrání názvů parametrů Categories a Timegrains v množném čísle z rutiny Set-AzDiagnosticSetting a jejich nahrazení názvy parametrů v jednotném čísle. Skripty používající

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    je potřeba 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.
  • Odebrání zastaralé vlastnosti EnableVmProtection z objektu PSVirtualNetwork.
  • Odebrání zastaralé rutiny Set-AzVirtualNetworkGatewayVpnClientConfig.

Skripty už by se při zpracování neměly rozhodovat na základě hodnot v těchto polích.

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

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

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

    Get-AzureRmOperationalInsightsDataSource
    

    by se měly změnit tak, aby určovaly 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.
  • Pro obnovu spravovaných disků je teď v rutině Restore-AzRecoveryServicesBackupItem povinný parametr TargetStorageAccountName.
  • Odebrání parametrů StorageAccountName a StorageAccountResourceGroupName z rutiny Restore-AzRecoveryServicesBackupItem.
  • Odebrání parametru Name z rutiny Get-AzRecoveryServicesBackupContainer.

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

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

  • Odebrání parametru Password z rutin New-AzADServicePrincipal a New-AzADSpCredential. Hesla se generují automaticky. Skripty, u kterých se zadávalo heslo:

    New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
    

    by se měly změnit tak, aby heslo načítaly z výstupu:

    $credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476
    $secPassword = $credential.Secret
    

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

  • Změnily se následující návratové typy rutin:
    • Vlastnost ServiceTypeHealthPolicies typu ApplicationHealthPolicy se odebrala.
    • Vlastnost ApplicationHealthPolicies typu ClusterUpgradeDeltaHealthPolicy se odebrala.
    • Vlastnost OverrideUserUpgradePolicy typu ClusterUpgradePolicy se odebrala.
    • 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)

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

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

  • Pro zajištění podpory vytvoření kontextu úložiště OAuth pouze s použitím názvu účtu úložiště se výchozí sada parametrů změnila na OAuthParameterSet.
    • Příklad: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Parametr Location se stal povinným v rutině Get-AzStorageUsage.
  • Metody rozhraní API služby Storage teď místo synchronních volání rozhraní API používají Asynchronní model založený na úkolech (TAP). Následující příklady ukazují nové asynchronní příkazy:

Snímek objektu blob

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

Snímek sdílené složky

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í obnovitelně odstraněné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()

Nastavení úrovně objektu 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 (dříve AzureRM.Websites)

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