Compartilhar via


Alterações significativas para o Az 1.0.0

Este documento fornece informações detalhadas sobre as alterações entre o AzureRM 6.x e o novo módulo Az, versão 1.x e posterior. O sumário ajudará você a percorrer um caminho de migração completo, incluindo alterações específicas do módulo que podem afetar seus scripts.

Para obter conselhos gerais sobre como começar a migrar do AzureRM para o Az, consulte Iniciar a migração do AzureRM para o Az.

Importante

Houve alterações significativas entre o Az 1.0.0 e o Az 2.0.0 também. Depois de seguir este guia para atualizar do AzureRM para o Az, consulte as alterações interruptivas do Az 2.0.0 para descobrir se você precisa fazer alterações adicionais.

Índice

Alterações disruptivas gerais

Esta seção detalha as alterações críticas gerais incluídas na reformulação do módulo Az.

Alterações de prefixo de substantivo do cmdlet

No módulo AzureRM, os cmdlets usavam AzureRM ou Azure como um prefixo substantivo. O Az simplifica e normaliza os nomes de cmdlet, de modo que todos os cmdlets usem 'Az' como prefixo de substantivo do cmdlet. Por exemplo:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Foi alterado para:

Get-AzVM
Get-AzKeyVaultSecret

Para tornar a transição para esses novos nomes de cmdlet mais simples, o Az apresenta dois novos cmdlets, Enable-AzureRmAlias e Disable-AzureRmAlias. Enable-AzureRmAlias cria aliases para os nomes de cmdlet mais antigos no AzureRM que são mapeados para os nomes mais recentes de cmdlet no Az. Usar o -Scope argumento com Enable-AzureRmAlias permite que você escolha onde os aliases estão habilitados.

Por exemplo, o seguinte script no AzureRM:

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

Pode ser executado com alterações mínimas usando Enable-AzureRmAlias:

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

A Enable-AzureRmAlias -Scope CurrentUser execução habilitará os aliases para todas as sessões do PowerShell que você abrir, de modo que, depois de executar esse cmdlet, um script como esse não precise ser alterado:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Para obter detalhes completos sobre o uso dos cmdlets de alias, consulte a referência Enable-AzureRmAlias.

Quando você estiver pronto para desabilitar aliases, Disable-AzureRmAlias removerá os aliases criados. Para obter detalhes completos, consulte a referência de Disable-AzureRmAlias.

Importante

Ao desabilitar aliases, verifique se eles estão desabilitados para todos os escopos que tinham aliases habilitados.

Alterações de nome do módulo

Os nomes do módulo foram alterados de AzureRM.* para Az.*, exceto para os seguintes módulos:

Módulo do AzureRM Módulo 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

As alterações nos nomes de módulo significam que qualquer script que use #Requires ou Import-Module carregue módulos específicos precisará ser alterado para usar o novo módulo. Para módulos em que o sufixo do cmdlet não foi alterado, isso significa que, embora o nome do módulo tenha sido alterado, o sufixo que indica o espaço de operação não foi alterado.

Migrando instruções #Requires e Import-Module

Scripts que usam #Requires ou Import-Module para declarar uma dependência em módulos do AzureRM devem ser atualizados para usar os novos nomes de módulo. Por exemplo:

#Requires -Module AzureRM.Compute

Deve ser alterado para:

#Requires -Module Az.Compute

Para Import-Module:

Import-Module -Name AzureRM.Compute

Deve ser alterado para:

Import-Module -Name Az.Compute

Migrando invocações de cmdlet totalmente qualificadas

Scripts que usam invocações de cmdlet qualificadas por módulo, como:

AzureRM.Compute\Get-AzureRmVM

Deve ser alterado para usar os novos nomes de módulo e cmdlet:

Az.Compute\Get-AzVM

Migrando dependências de manifesto do módulo

Os módulos que expressam dependências em módulos do AzureRM por meio de um arquivo de manifesto de módulo (.psd1) precisarão atualizar os nomes do módulo em sua RequiredModules seção:

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

Deve ser alterado para:

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

Módulos removidos

Os seguintes módulos foram removidos:

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

As ferramentas para esses serviços não são mais ativamente suportadas. Os clientes são incentivados a migrar para serviços alternativos assim que for conveniente.

Windows PowerShell 5.1 e .NET 4.7.2

Usar o Az com o PowerShell 5.1 para Windows requer a instalação do .NET Framework 4.7.2. Usar o PowerShell Core 6.x ou posterior não requer .NET Framework.

Remoção temporária do logon do usuário usando PSCredential

Devido a alterações no fluxo de autenticação do .NET Standard, estamos removendo temporariamente o logon do usuário por meio do PSCredential. Essa funcionalidade será reintroduzida na versão 15/1/2019 do PowerShell 5.1 para Windows. Isso é discutido em detalhes em this GitHub issue.

Login padrão com código de dispositivo em vez do prompt no navegador

Devido a alterações no fluxo de autenticação do .NET Standard, estamos usando o logon do dispositivo como o fluxo de logon padrão durante o logon interativo. O logon baseado no navegador da Web será introduzido novamente para o PowerShell 5.1 para Windows como o padrão na versão 15/1/2019. Nesse momento, os usuários poderão escolher o logon do dispositivo usando um parâmetro Switch.

Alterações de falha de módulo

Esta seção detalha alterações significativas específicas para módulos e cmdlets individuais.

Az.ApiManagement (anteriormente AzureRM.ApiManagement)

  • Foram removidos os seguintes cmdlets:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Use o cmdlet Set-AzApiManagement para definir essas propriedades em vez disso
  • Foram removidas as seguintes propriedades:
    • Propriedade PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration e ScmHostnameConfiguration do tipo PsApiManagementHostnameConfiguration removida de PsApiManagementContext. Em vez disso, use PortalCustomHostnameConfiguration, ProxyCustomHostnameConfigurationManagementCustomHostnameConfiguration e ScmCustomHostnameConfiguration do tipo PsApiManagementCustomHostNameConfiguration.
    • Propriedade StaticIPs removida de PsApiManagementContext. A propriedade foi dividida em PublicIPAddresses e PrivateIPAddresses.
    • Propriedade obrigatória Location removida do cmdlet New-AzureApiManagementVirtualNetwork.

Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)

  • O InvoiceName parâmetro foi removido do Get-AzConsumptionUsageDetail cmdlet. Os scripts precisarão usar outros parâmetros de identidade para a fatura.

Az.CognitiveServices (anteriormente AzureRM.CognitiveServices)

  • Conjunto de parâmetros removido GetSkusWithAccountParamSetName do Get-AzCognitiveServicesAccountSkus cmdlet. Você deve obter Skus por tipo de conta e local, em vez de usar ResourceGroupName e Nome da Conta.

Az.Compute (anteriormente AzureRM.Compute)

  • IdentityIds são removidos da propriedade Identity nos objetos PSVirtualMachine e PSVirtualMachineScaleSet. Os scripts não devem mais usar o valor deste campo para tomar decisões de processamento.
  • O tipo de InstanceView propriedade do PSVirtualMachineScaleSetVM objeto é alterado de VirtualMachineInstanceView para VirtualMachineScaleSetVMInstanceView
  • AutoOSUpgradePolicy e AutomaticOSUpgrade as propriedades são removidas da UpgradePolicy propriedade
  • O tipo de Sku propriedade no PSSnapshotUpdate objeto é alterado de DiskSku para SnapshotSku
  • VmScaleSetVMParameterSet é removido do Add-AzVMDataDisk cmdlet, você não pode mais adicionar um disco de dados individualmente a uma VM ScaleSet.

Az.DataFactory (anteriormente AzureRM.DataFactories e AzureRM.DataFactoryV2)

  • O GatewayName parâmetro tornou-se obrigatório no New-AzDataFactoryEncryptValue cmdlet
  • Removido o cmdlet New-AzDataFactoryGatewayKey
  • Removido o parâmetro LinkedServiceName do cmdlet Get-AzDataFactoryV2ActivityRun. Os scripts não devem mais usar o valor desse campo para tomar decisões de processamento.

Az.DataLakeAnalytics (anteriormente AzureRM.DataLakeAnalytics)

  • Cmdlets obsoletos removidos: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecret e Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)

  • Os cmdlets a seguir tiveram o Encoding parâmetro alterado do tipo FileSystemCmdletProviderEncoding para System.Text.Encoding. Essa alteração remove os valores String de codificação e Oem. Todos os outros valores de codificação anteriores permanecem.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Alias de propriedade preterido Tags removido dos cmdlets New-AzDataLakeStoreAccount e Set-AzDataLakeStoreAccount

    Scripts usando

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

    Deve ser alterado para

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Propriedades preteridas Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps removidas do objeto PSDataLakeStoreAccountBasic. Qualquer script que use o PSDatalakeStoreAccount retornado de Get-AzDataLakeStoreAccount não deve referenciar essas propriedades.

Az.KeyVault (anteriormente AzureRM.KeyVault)

  • A propriedade PurgeDisabled foi removida dos objetos PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem e PSKeyVaultSecretAttributes. Scripts de objetos não devem mais referenciar a propriedade PurgeDisabled para tomar decisões de processamento.

Az.Media (anteriormente AzureRM.Media)

  • Remover o alias de propriedade preterido de Tags dos scripts de cmdlet New-AzMediaService usando

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

    Deve ser alterado para

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

Az.Monitor (anteriormente AzureRM.Insights)

  • Remoção dos nomes no plural dos parâmetros Categories e Timegrains em favor de nomes de parâmetro no singular dos scripts usando o cmdlet Set-AzDiagnosticSetting

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Deve ser alterado para

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (anteriormente AzureRM.Network)

  • Parâmetro obsoleto ResourceId removido do cmdlet Get-AzServiceEndpointPolicyDefinition
  • Removida a propriedade obsoleta EnableVmProtection do objeto PSVirtualNetwork
  • Cmdlet Set-AzVirtualNetworkGatewayVpnClientConfig obsoleto removido

Os scripts não devem mais tomar decisões de processamento com base nos valores desses campos.

Az.OperationalInsights (anteriormente AzureRM.OperationalInsights)

  • O conjunto de parâmetros padrão para Get-AzOperationalInsightsDataSource foi removido, e ByWorkspaceNameByKind tornou-se o conjunto de parâmetros padrão.

    Scripts que listaram fontes de dados usando

    Get-AzureRmOperationalInsightsDataSource
    

    Deve ser alterado para especificar um Tipo

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

Az.RecoveryServices (anteriormente AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup e AzureRM.RecoveryServices.SiteRecovery)

  • Removido o parâmetro Encryption do cmdlet New/Set-AzRecoveryServicesAsrPolicy
  • TargetStorageAccountName o parâmetro agora é obrigatório para restaurações de disco gerenciado no Restore-AzRecoveryServicesBackupItem cmdlet
  • Removidos os parâmetros StorageAccountName e StorageAccountResourceGroupName no cmdlet Restore-AzRecoveryServicesBackupItem
  • Removido o parâmetro Name no cmdlet Get-AzRecoveryServicesBackupContainer

Az.Resources (anteriormente AzureRM.Resources)

  • O parâmetro Sku foi removido do cmdlet New/Set-AzPolicyAssignment

  • Foi removido o parâmetro Password do New-AzADServicePrincipal e New-AzADSpCredential. As senhas são geradas automaticamente; scripts que anteriormente forneciam a senha:

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

    Deve ser alterado para recuperar a senha da saída:

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

Az.ServiceFabric (anteriormente AzureRM.ServiceFabric)

  • Os seguintes tipos de retorno de cmdlet foram alterados:
    • A propriedade ServiceTypeHealthPolicies do tipo ApplicationHealthPolicy foi removida.
    • A propriedade ApplicationHealthPolicies do tipo ClusterUpgradeDeltaHealthPolicy foi removida.
    • A propriedade OverrideUserUpgradePolicy do tipo ClusterUpgradePolicy foi removida.
    • Essas alterações afetam os seguintes cmdlets:
      • 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 (anteriormente AzureRM.Sql)

  • Removidos os parâmetros State e ResourceId do cmdlet Set-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Cmdlets preteridos removidos: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Parâmetro obsoleto Current removido do cmdlet Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Parâmetro preterido DatabaseName removido do Get-AzSqlServerServiceObjective cmdlet
  • Parâmetro obsoleto PrivilegedLogin removido do cmdlet Set-AzSqlDatabaseDataMaskingPolicy

Az.Storage (anteriormente Azure.Storage e AzureRM.Storage)

  • Para dar suporte à criação de um contexto de armazenamento Oauth com apenas o nome da conta de armazenamento, o conjunto de parâmetros padrão foi alterado para OAuthParameterSet
    • Exemplo: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • O Location parâmetro tornou-se obrigatório no Get-AzStorageUsage cmdlet
  • Os métodos de API de Armazenamento agora usam o TAP (Padrão Assíncrono baseado em tarefa), em vez de chamadas de API síncronas. Os exemplos a seguir demonstram os novos comandos assíncronos:

Instantâneo de 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

Compartilhar instantâneo

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

Recuperar blob excluído temporariamente

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

Definir camada de 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 (anteriormente AzureRM.Websites)

  • Propriedades preteridas removidas dos objetos PSAppServicePlan, PSCertificate, PSCloningInfo e PSSite