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 que causam quebras
-
Alterações significativas no módulo
- Az.ApiManagement (anteriormente AzureRM.ApiManagement)
- Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)
- Az.CognitiveServices (anteriormente AzureRM.CognitiveServices)
- Az.Compute (anteriormente AzureRM.Compute)
- Az.DataFactory (anteriormente AzureRM.DataFactories e AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics (anteriormente AzureRM.DataLakeAnalytics)
- Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)
- Az.KeyVault (anteriormente AzureRM.KeyVault)
- Az.Media (anteriormente AzureRM.Media)
- Az.Monitor (anteriormente AzureRM.Insights)
- Az.Network (anteriormente AzureRM.Network)
- Az.OperationalInsights (anteriormente AzureRM.OperationalInsights)
- Az.RecoveryServices (anteriormente AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup e AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources (anteriormente AzureRM.Resources)
- Az.ServiceFabric (anteriormente AzureRM.ServiceFabric)
- Az.Sql (anteriormente AzureRM.Sql)
- Az.Storage (anteriormente Azure.Storage e AzureRM.Storage)
- Az.Websites (anteriormente AzureRM.Websites)
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
eScmHostnameConfiguration
do tipoPsApiManagementHostnameConfiguration
dePsApiManagementContext
. Em vez disso, usePortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
eScmCustomHostnameConfiguration
do tipoPsApiManagementCustomHostNameConfiguration
. - A propriedade
StaticIPs
foi removida de PsApiManagementContext. A propriedade foi dividida emPublicIPAddresses
ePrivateIPAddresses
. - Removida a propriedade necessária
Location
do cmdlet New-AzureApiManagementVirtualNetwork.
- Propriedades removidas
Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)
- O parâmetro
InvoiceName
foi removido do cmdletGet-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 cmdletGet-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 propriedadeIdentity
nos objetosPSVirtualMachine
ePSVirtualMachineScaleSet
. Os scripts não devem mais usar o valor deste campo para tomar decisões de processamento. - O tipo de propriedade
InstanceView
dePSVirtualMachineScaleSetVM
objeto é alterado deVirtualMachineInstanceView
paraVirtualMachineScaleSetVMInstanceView
-
AutoOSUpgradePolicy
eAutomaticOSUpgrade
são propriedades removidas da propriedadeUpgradePolicy
- O tipo de propriedade
Sku
emPSSnapshotUpdate
objeto é alterado deDiskSku
paraSnapshotSku
-
VmScaleSetVMParameterSet
foi removido do cmdletAdd-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 cmdletNew-AzDataFactoryEncryptValue
- Removido o cmdlet
New-AzDataFactoryGatewayKey
- Removido o parâmetro
LinkedServiceName
do cmdletGet-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-AzDataLakeAnalyticsCatalogSecret
eSet-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)
Os cmdlets a seguir tiveram o parâmetro
Encoding
alterado do tipoFileSystemCmdletProviderEncoding
paraSystem.Text.Encoding
. Essa alteração remove os valores de codificaçãoString
eOem
. Todos os outros valores de codificação anteriores permanecem.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Removido o alias de propriedade
Tags
preterido dos cmdletsNew-AzDataLakeStoreAccount
eSet-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
dePSDataLakeStoreAccountBasic
objeto. Qualquer script que use oPSDatalakeStoreAccount
retornado deGet-AzDataLakeStoreAccount
não deve fazer referência a essas propriedades.
Az.KeyVault (anteriormente AzureRM.KeyVault)
- A propriedade
PurgeDisabled
foi removida dos objetosPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
ePSKeyVaultSecretAttributes
Os scripts não devem mais fazer referência à propriedadePurgeDisabled
para tomar decisões de processamento.
Az.Media (anteriormente AzureRM.Media)
Remova o alias de propriedade
Tags
preterido deNew-AzMediaService
cmdlet Scripts usandoNew-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
eTimegrains
em favor dos nomes de parâmetros singulares usando o cmdletSet-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 cmdletGet-AzServiceEndpointPolicyDefinition
- Removida a propriedade preterida
EnableVmProtection
do objetoPSVirtualNetwork
- 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 eByWorkspaceNameByKind
se tornou o conjunto de parâmetros padrãoScripts 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 cmdletNew/Set-AzRecoveryServicesAsrPolicy
-
TargetStorageAccountName
parâmetro agora é obrigatório para restaurações de disco gerenciadas emRestore-AzRecoveryServicesBackupItem
cmdlet - Parâmetros
StorageAccountName
eStorageAccountResourceGroupName
removidos no cmdletRestore-AzRecoveryServicesBackupItem
- Removido o parâmetro
Name
do cmdletGet-AzRecoveryServicesBackupContainer
Az.Resources (anteriormente AzureRM.Resources)
Removido o parâmetro
Sku
do cmdletNew/Set-AzPolicyAssignment
Removido o parâmetro
Password
do cmdletNew-AzADServicePrincipal
eNew-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 tipoApplicationHealthPolicy
foi removida. - A propriedade
ApplicationHealthPolicies
do tipoClusterUpgradeDeltaHealthPolicy
foi removida. - A propriedade
OverrideUserUpgradePolicy
do tipoClusterUpgradePolicy
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
- A propriedade
Az.Sql (anteriormente AzureRM.Sql)
- Parâmetros
State
eResourceId
removidos deSet-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 cmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Removido o parâmetro preterido
DatabaseName
do cmdletGet-AzSqlServerServiceObjective
- Removido o parâmetro preterido
PrivilegedLogin
do cmdletSet-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
- Exemplo:
- O parâmetro
Location
tornou-se obrigatório no cmdletGet-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
,PSCloningInfo
ePSSite
Azure PowerShell