Alterações interruptivas do Az 1.0.0
Este documento fornece informações detalhadas sobre as alterações entre o AzureRM 6.x e o novo módulo do Az, versão 1.x e posterior. O índice irá guiá-lo através de um caminho de migração completo, incluindo alterações específicas do módulo que podem afetar os scripts.
Para obter orientação geral sobre como começar uma migração do AzureRM para o Az, veja Iniciar a migração do AzureRM para o Az.
Importante
Também têm sido feitas alterações interruptivas entre o Az 1.0.0 e o Az 2.0.0. Depois de seguir este guia para atualizar do AzureRM para o Az, veja as alterações interruptivas do Az 2.0.0 para saber se tem de fazer alterações adicionais.
Índice
- Alterações interruptivas gerais
- Alterações dos prefixo de nomes de cmdlets
- Alterações de Nomes de Módulos
- Módulos removidos
- Windows PowerShell 5.1 e .NET 4.7.2
- Remoção temporária do início de sessão do utilizador através de PSCredential
- Início de sessão com o código de dispositivo predefinido em vez da linha de comandos do browser
- Alterações interruptivas do 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 interruptivas gerais
Esta secção fornece detalhes sobre as alterações interruptivas gerais que fazem parte do novo design do módulo do Az.
Alterações do Prefixo de Nomes de Cmdlet
No módulo do AzureRM, os cmdlets utilizavam AzureRM
ou Azure
como prefixo de nome. O Az simplifica e normaliza os nomes de cmdlets, para que todos os cmdlets utilizem "Az" como prefixo de nome de cmdlet. Por exemplo:
Get-AzureRMVM
Get-AzureKeyVaultSecret
Foi alterado para:
Get-AzVM
Get-AzKeyVaultSecret
Para simplificar a transição para estes novos nomes de cmdlets, o Az apresenta dois novos cmdlets, Enable-AzureRmAlias e Disable-AzureRmAlias. Enable-AzureRmAlias
cria aliases para os nomes de cmdlets mais antigos no AzureRM que os mapeia para os nomes de cmdlets do Az mais recentes. A utilização do argumento -Scope
com Enable-AzureRmAlias
permite-lhe escolher onde os aliases estão ativados.
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 com Enable-AzureRmAlias
:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
A utilização de Enable-AzureRmAlias -Scope CurrentUser
permite atualizar os aliases em todas as sessões do PowerShell que forem abertas, para que, após a execução deste cmdlet, não seja necessário alterar um script deste tipo:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Para obter detalhes completos sobre a utilização de cmdlets de aliases,veja a referência Enable-AzureRmAlias.
Quando estiver pronto para desativar aliases, Disable-AzureRmAlias
remove os aliases criados. Para obter detalhes completos, veja a referência Disable-AzureRmAlias.
Importante
Quando desativar aliases, certifique-se de que estão desativados para todos os âmbitos que tiveram aliases ativados.
Alterações de Nomes de Módulos
Os nomes de módulos foram alterados de AzureRM.*
para Az.*
, exceto para os seguintes módulos:
Módulo AzureRM | Módulo do 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 realizadas ao nível dos nomes de módulos significam que qualquer script que utilizar #Requires
ou Import-Module
para carregar módulos específicos terá de ser alterado de modo a utilizar o novo módulo. Para os módulos em que o sufixo de cmdlet não foi alterado, embora o nome do módulo tenha sido alterado, o sufixo que indica o espaço da operação não foi alterado.
Migrar Declarações #Requires e Import-Module
Os scripts que utilizam #Requires
ou Import-Module
para declarar uma dependência nos módulos do AzureRM devem ser atualizados de modo a utilizarem os novos nomes de módulos. Por exemplo:
#Requires -Module AzureRM.Compute
Deve ser alterado para:
#Requires -Module Az.Compute
Para o Import-Module
:
Import-Module -Name AzureRM.Compute
Deve ser alterado para:
Import-Module -Name Az.Compute
Migrar Invocações de Cmdlets Completamente Qualificados
Os scripts que utilizam invocações de cmdlets qualificados por módulo, como:
AzureRM.Compute\Get-AzureRmVM
Têm de ser alterados de modo a utilizarem os novos nomes de módulos e cmdlets:
Az.Compute\Get-AzVM
Migrar dependências de manifestos de módulos
Os módulos que expressam dependências nos módulos do AzureRM através de um ficheiro (.psd1) de manifesto de módulo terão de atualizar os nomes de módulos na respetiva secção RequiredModules
:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
Tem de ser alterado para:
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
Módulos removidos
Os módulos seguintes foram removidos:
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
As ferramentas para estes serviços já não são suportadas ativamente. Os clientes são incentivados a mudar para serviços alternativos assim que for possível.
Windows PowerShell 5.1 e .NET 4.7.2
Para utilizar o Az com o PowerShell 5.1 para Windows, tem de instalar o .NET Framework 4.7.2. A utilização do PowerShell Core 6.x ou posterior não requer o .NET Framework.
Remoção temporária do Início de sessão do utilizador através de PSCredential
Devido a alterações no fluxo de autenticação para o .NET Standard, estamos a remover temporariamente o início de sessão do utilizador através de PSCredential. Esta capacidade será introduzida novamente na versão de 15/01/2019 para o PowerShell 5.1 para Windows. Este assunto é abordado em detalhe neste debate sobre o problema no GitHub.
Início de sessão com o código de dispositivo predefinido em vez da linha de comandos do browser
Devido a alterações no fluxo de autenticação para o .NET Standard, estamos a utilizar o início de sessão de dispositivo como o fluxo de início de sessão predefinido durante o início de sessão interativo. O início de sessão baseado no browser será introduzido novamente para o PowerShell 5.1 para Windows como a predefinição na versão de 15/01/2019. Nessa altura, os utilizadores poderão escolher o início de sessão de dispositivo através de um parâmetro de mudança (Switch).
Alterações interruptivas do módulo
Esta secção fornece detalhes sobre alterações interruptivas específicas para cmdlets e módulos individuais.
Az.ApiManagement (anteriormente AzureRM.ApiManagement)
- Removidos os seguintes cmdlets:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Em alternativa, utilize o cmdlet Set-AzApiManagement para definir estas propriedades
- Removidas as seguintes propriedades:
- As propriedades
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
eScmHostnameConfiguration
do tipoPsApiManagementHostnameConfiguration
foram removidas dePsApiManagementContext
. Em vez disso, utilizePortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
eScmCustomHostnameConfiguration
do tipoPsApiManagementCustomHostNameConfiguration
. - A propriedade
StaticIPs
foi removida de PsApiManagementContext. A propriedade foi dividida emPublicIPAddresses
ePrivateIPAddresses
. - A propriedade necessária
Location
foi removida do cmdlet New-AzureApiManagementVirtualNetwork.
- As propriedades
Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)
- O parâmetro
InvoiceName
foi removido do cmdletGet-AzConsumptionUsageDetail
. Os scripts terão de utilizar outros parâmetros de identidade para a faturação.
Az.CognitiveServices (anteriormente AzureRM.CognitiveServices)
- O conjunto de parâmetros
GetSkusWithAccountParamSetName
foi removido do cmdletGet-AzCognitiveServicesAccountSkus
. Tem de obter os Skus através do Tipo de Conta e da Localização, em vez de utilizar ResourceGroupName e o Nome da Conta.
Az.Compute (anteriormente AzureRM.Compute)
- Os
IdentityIds
foram removidos da propriedadeIdentity
nos objetosPSVirtualMachine
ePSVirtualMachineScaleSet
. Os scripts devem deixar de utilizar o valor deste campo para tomar decisões de processamento. - O tipo de propriedade
InstanceView
do objetoPSVirtualMachineScaleSetVM
foi alterado deVirtualMachineInstanceView
paraVirtualMachineScaleSetVMInstanceView
- As propriedades
AutoOSUpgradePolicy
eAutomaticOSUpgrade
foram removidas da propriedadeUpgradePolicy
- O tipo de propriedade
Sku
no objetoPSSnapshotUpdate
foi alterado deDiskSku
paraSnapshotSku
VmScaleSetVMParameterSet
foi removido do cmdletAdd-AzVMDataDisk
. Já não pode adicionar um disco de dados individualmente a uma VM de conjunto de dimensionamento (ScaleSet).
Az.DataFactory (anteriormente AzureRM.DataFactories e AzureRM.DataFactoryV2)
- O parâmetro
GatewayName
tornou-se obrigatório no cmdletNew-AzDataFactoryEncryptValue
- O cmdlet
New-AzDataFactoryGatewayKey
foi removido - O parâmetro
LinkedServiceName
foi removido do cmdletGet-AzDataFactoryV2ActivityRun
. Os scripts devem deixar de utilizar o valor deste campo para tomar decisões de processamento.
Az.DataLakeAnalytics (anteriormente AzureRM.DataLakeAnalytics)
- Os cmdlets preteridos que se seguem foram removidos:
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
eSet-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)
O tipo do parâmetro
Encoding
foi alterado deFileSystemCmdletProviderEncoding
paraSystem.Text.Encoding
nos cmdlets que se seguem. Esta alteração remove os valores de codificaçãoString
eOem
. Todos os outros valores de codificação anteriores permanecem.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
O alias de propriedade preterido
Tags
foi removido dos cmdletsNew-AzDataLakeStoreAccount
eSet-AzDataLakeStoreAccount
Os scripts que utilizam
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
Devem ser alterados para
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
As propriedades preteridas
Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
,FirewallState
,FirewallRules
,VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
eFirewallAllowAzureIps
foram removidas do objetoPSDataLakeStoreAccountBasic
. Qualquer script que utilizePSDatalakeStoreAccount
devolvido a partir 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 devem deixar de fazer referência à propriedadePurgeDisabled
para tomar decisões de processamento.
Az.Media (anteriormente AzureRM.Media)
O alias de propriedade preterido
Tags
foi removido do cmdletNew-AzMediaService
. Os scripts que utilizamNew-AzureRMMediaService -Tags @{TagName="TagValue"}
Devem ser alterados para
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (anteriormente AzureRM.Insights)
Os nomes de parâmetros no plural
Categories
eTimegrains
foram removidos em prol de nomes de parâmetros no singular do cmdletSet-AzDiagnosticSetting
. Os scripts que utilizamSet-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Devem ser alterados para
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (anteriormente AzureRM.Network)
- O parâmetro preterido
ResourceId
foi removido do cmdletGet-AzServiceEndpointPolicyDefinition
- A propriedade preterida
EnableVmProtection
foi removida do objetoPSVirtualNetwork
- O cmdlet preterido
Set-AzVirtualNetworkGatewayVpnClientConfig
foi removido
Os scripts devem deixar de tomar decisões de processamento com base nos valores destes campos.
Az.OperationalInsights (anteriormente AzureRM.OperationalInsights)
O conjunto de parâmetros predefinido para
Get-AzOperationalInsightsDataSource
foi removido eByWorkspaceNameByKind
passou a ser o conjunto de parâmetros predefinidoOs scripts que listavam origens de dados com
Get-AzureRmOperationalInsightsDataSource
Devem ser alterados para especificar um tipo (Kind)
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (anteriormente AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup e AzureRM.RecoveryServices.SiteRecovery)
- O parâmetro
Encryption
foi removido do cmdletNew/Set-AzRecoveryServicesAsrPolicy
- Agora, o parâmetro
TargetStorageAccountName
é obrigatório para os restauros de discos geridos no cmdletRestore-AzRecoveryServicesBackupItem
- Os parâmetros
StorageAccountName
eStorageAccountResourceGroupName
foram removidos no cmdletRestore-AzRecoveryServicesBackupItem
- O parâmetro
Name
foi removido no cmdletGet-AzRecoveryServicesBackupContainer
Az.Resources (anteriormente AzureRM.Resources)
O parâmetro
Sku
foi removido do cmdletNew/Set-AzPolicyAssignment
O parâmetro
Password
foi removido dos cmdletsNew-AzADServicePrincipal
eNew-AzADSpCredential
. As palavras-passe são geradas automaticamente e o scripts que forneciam a palavra-passe:New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
Devem ser alterados de modo a obterem a palavra-passe a partir da saída:
$credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 $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)
- Os parâmetros
State
eResourceId
foram removidos do cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Foram removidos os seguintes cmdlets preteridos:
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
eRemove-AzSqlServerAuditing
- O parâmetro preterido
Current
foi removido do cmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy
- O parâmetro preterido
DatabaseName
foi removido do cmdletGet-AzSqlServerServiceObjective
- O parâmetro preterido
PrivilegedLogin
foi removido do cmdletSet-AzSqlDatabaseDataMaskingPolicy
Az.Storage (anteriormente Azure.Storage e AzureRM.Storage)
- Para suportar a criação de um contexto de armazenamento de Oauth com apenas o nome da conta de armazenamento, o conjunto de parâmetros predefinido 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 utilizam agora o Padrão Assíncrono Baseado em Tarefas (TAP), em vez de chamadas síncronas à API. Os exemplos seguintes 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
Instantâneo da Partilha
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
Anular eliminação do blob eliminado de forma recuperável
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()
Set Blob Tier (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)
- As propriedades preteridas foram removidas dos objetos
PSAppServicePlan
,PSCertificate
,PSCloningInfo
ePSSite
Azure PowerShell
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários