Compartilhar via


Alterações significativas para 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á a guiá-lo por 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 mudanças significativas entre Az 1.0.0 e Az 2.0.0 também. Depois de seguir este guia para atualizar do AzureRM para o Az, consulte o Az 2.0.0 de alterações de quebra para descobrir se você precisa fazer alterações adicionais.

Índice

Alterações gerais de interrupção

Esta secção detalha as alterações gerais disruptivas que fazem parte do redesenho do módulo Az.

Alterações no prefixo do nome do cmdlet

No módulo AzureRM, os cmdlets usavam AzureRM ou Azure como um prefixo substantivo. Az simplifica e normaliza os nomes de cmdlets, para que todos usem 'Az' como prefixo no nome dos cmdlets. Por exemplo:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Mudou 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 correspondem aos nomes de cmdlet Az mais recentes. Usar o argumento -Scope 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 execução Enable-AzureRmAlias -Scope CurrentUser habilitará os aliases para todas as sessões do PowerShell abertas, 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 na referência Enable-AzureRmAlias.

Quando estiver pronto para desativar os aliases, Disable-AzureRmAlias remove os aliases criados. Para obter detalhes completos, consulte a referência Disable-AzureRmAlias.

Importante

Ao desativar aliases, certifique-se de que eles estão desabilitados para todos os escopos que tinham aliases habilitados.

Alterações no nome do módulo

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

Módulo AzureRM Módulo Az
Azure.Storage Az.Armazenamento
Azure.AnalysisServices Az.AnalysisServices
AzureRM.Profile Az.Contas
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.Recursos
AzureRM.MachineLearningCompute Az.Aprendizagem Automática
AzureRM.UsageAggregates Azure Faturação
AzureRM.Consumption Az.Faturação

As alterações nos nomes dos módulos significam que qualquer script que use #Requires ou Import-Module para carregar 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 é e não.

Migrando instruções #Requires e Import-Module

Os scripts que usam #Requires ou Import-Module para declarar uma dependência nos 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 Fully-Qualified

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 nos módulos AzureRM por meio de um arquivo de manifesto de módulo (.psd1) precisarão atualizar os nomes dos módulos em sua seção RequiredModules:

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 suportadas ativamente. Os clientes são incentivados a mudar 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 o .NET Framework.

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

Devido a alterações no fluxo de autenticação para o .NET Standard, estamos removendo temporariamente o login do usuário via PSCredential. Esse recurso será reintroduzido na versão 15/01/2019 do PowerShell 5.1 para Windows. Isso é discutido em detalhes em este problema do GitHub.

Login por código de dispositivo padrão em vez de mensagem do navegador Web

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

Alterações de quebra de módulo

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

Az.ApiManagement (anteriormente AzureRM.ApiManagement)

  • Removidos os seguintes cmdlets:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Use o cmdlet Set-AzApiManagement para definir essas propriedades
  • Removidas as seguintes propriedades:
    • Propriedades removidas PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration e ScmHostnameConfiguration do tipo PsApiManagementHostnameConfiguration de PsApiManagementContext. Em vez disso, use PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration e ScmCustomHostnameConfiguration do tipo PsApiManagementCustomHostNameConfiguration.
    • A propriedade StaticIPs foi removida de PsApiManagementContext. A propriedade foi dividida em PublicIPAddresses e PrivateIPAddresses.
    • Removida a propriedade necessária Location do cmdlet New-AzureApiManagementVirtualNetwork.

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

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

Az.CognitiveServices (anteriormente AzureRM.CognitiveServices)

  • Removido o conjunto de parâmetros GetSkusWithAccountParamSetName do cmdlet Get-AzCognitiveServicesAccountSkus. Você deve obter os Skus por Tipo de Conta e Localização, 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 propriedade InstanceView de PSVirtualMachineScaleSetVM objeto é alterado de VirtualMachineInstanceView para VirtualMachineScaleSetVMInstanceView
  • AutoOSUpgradePolicy e AutomaticOSUpgrade são propriedades removidas da propriedade UpgradePolicy
  • O tipo de propriedade Sku em PSSnapshotUpdate objeto é alterado de DiskSku para SnapshotSku
  • VmScaleSetVMParameterSet foi removido do cmdlet Add-AzVMDataDisk, já não é possível adicionar um disco de dados individualmente a uma VM ScaleSet.

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

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

Az.DataLakeAnalytics (anteriormente AzureRM.DataLakeAnalytics)

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

Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)

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

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Removido o alias de propriedade Tags preterido dos cmdlets New-AzDataLakeStoreAccount e Set-AzDataLakeStoreAccount

    Usando scripts

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

    Deve ser alterado para

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

Az.KeyVault (anteriormente AzureRM.KeyVault)

  • A propriedade PurgeDisabled foi removida dos objetos PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityIteme PSKeyVaultSecretAttributes Os scripts não devem mais fazer referência à propriedade PurgeDisabled para tomar decisões de processamento.

Az.Media (anteriormente AzureRM.Media)

  • Remova o alias de propriedade Tags preterido de New-AzMediaService cmdlet Scripts usando

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

    Deve ser alterado para

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

Az.Monitor (anteriormente AzureRM.Insights)

  • Removidos os nomes de parâmetro plurais Categories e Timegrains em favor dos nomes de parâmetros singulares usando o cmdlet Set-AzDiagnosticSetting em scripts.

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Deve ser alterado para

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (anteriormente AzureRM.Network)

  • Removido parâmetro ResourceId preterido do cmdlet Get-AzServiceEndpointPolicyDefinition
  • Removida a propriedade preterida EnableVmProtection do objeto PSVirtualNetwork
  • Removido o cmdlet Set-AzVirtualNetworkGatewayVpnClientConfig preterido

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 é removido e ByWorkspaceNameByKind se tornou o conjunto de parâmetros padrão

    Scripts que listam 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 parâmetro agora é obrigatório para restaurações de disco gerenciadas em Restore-AzRecoveryServicesBackupItem cmdlet
  • Parâmetros StorageAccountName e StorageAccountResourceGroupName removidos no cmdlet Restore-AzRecoveryServicesBackupItem
  • Removido o parâmetro Namedo cmdlet Get-AzRecoveryServicesBackupContainer

Az.Resources (anteriormente AzureRM.Resources)

  • Removido o parâmetro Sku do cmdlet New/Set-AzPolicyAssignment

  • Removido o parâmetro Password do cmdlet New-AzADServicePrincipal e New-AzADSpCredential. As senhas são geradas automaticamente: scripts que 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)

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

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

  • Para dar suporte à criação de um contexto de armazenamento Oauth apenas com o nome da conta de armazenamento, o conjunto de parâmetros padrão foi alterado para OAuthParameterSet
    • Exemplo: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • O parâmetro Location tornou-se obrigatório no cmdlet Get-AzStorageUsage
  • Os métodos da API de armazenamento agora usam o padrão assíncrono baseado em tarefas (TAP), 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

Restaurar blob eliminado 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 nível 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, PSCloningInfoe PSSite