Guia de migração para o Az 2.0.0

Este documento descreve as alterações entre as versões 1.0.0 e 2.0.0 do Az

Índice

Alterações de falhas para módulos

Az.Compute

  • Remoção do parâmetro Managed dos cmdlets New-AzAvailabilitySet e Update-AzAvailabilitySet a favor do uso de Sku = Aligned

    Antes

    Update-AzAvailabilitySet -Managed
    

    Depois

    Update-AzAvailabilitySet -Sku Aligned
    
  • Para consistência, o parâmetro Image foi removido dos conjuntos de parâmetros 'ByName' e 'ByResourceId' em Update-AzImage

    Antes

    Observe que o código abaixo é funcional, mas o ImageName passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Image $Image -Tag $tags
    
    Update-AzImage -ResourceId $Id -Image $Image -Tag $tags
    

    Depois

    Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags
    
    Update-AzImage -ResourceId $Id -Tag $tags
    
  • Para consistência, removeu o parâmetro Name dos conjuntos de parâmetros 'ByObject' e 'ByResourceId' no Restart-AzVM

    Antes

    Observe que o código abaixo é funcional, mas o Nome passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Restart-AzVM -InputObject $VM -Name $Name
    
    Restart-AzVM -ResourceId $Id -Name $Name
    

    Depois

    Restart-AzVM -InputObject $VM
    
    Restart-AzVM -ResourceId $Id
    
  • Para consistência, removeu o parâmetro Name dos conjuntos de parâmetros 'ByObject' e 'ByResourceId' no Start-AzVM

    Antes

    Observe que o código abaixo é funcional, mas o Nome passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Start-AzVM -InputObject $VM -Name $Name
    
    Start-AzVM -ResourceId $Id -Name $Name
    

    Depois

    Start-AzVM -InputObject $VM
    
    Start-AzVM -ResourceId $Id
    
  • Para consistência, removeu o parâmetro Name dos conjuntos de parâmetros 'ByObject' e 'ByResourceId' no Stop-AzVM

    Antes

    Observe que o código abaixo é funcional, mas o Nome passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Stop-AzVM -InputObject $VM -Name $Name
    
    Stop-AzVM -ResourceId $Id -Name $Name
    

    Depois

    Stop-AzVM -InputObject $VM
    
    Stop-AzVM -ResourceId $Id
    
  • Para consistência, removeu o parâmetro Name dos conjuntos de parâmetros 'ByObject' e 'ByResourceId' no Remove-AzVM

    Antes

    Observe que o código abaixo é funcional, mas o Nome passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Remove-AzVM -InputObject $VM -Name $Name
    
    Remove-AzVM -ResourceId $Id -Name $Name
    

    Depois

    Remove-AzVM -InputObject $VM
    
    Remove-AzVM -ResourceId $Id
    
  • Para consistência, removeu o parâmetro Name dos conjuntos de parâmetros 'ByObject' e 'ByResourceId' no Set-AzVM

    Antes

    Observe que o código abaixo é funcional, mas o Nome passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Set-AzVM -InputObject $VM -Name $Name ...
    
    Set-AzVM -ResourceId $Id -Name $Name ...
    

    Depois

    Set-AzVM -InputObject $VM ...
    
    Set-AzVM -ResourceId $Id ...
    
  • Para consistência, removeu o parâmetro Name dos conjuntos de parâmetros 'ByObject' e 'ByResourceId' no Save-AzVMImage

    Antes

    Observe que o código abaixo é funcional, mas o Nome passado não é usado, portanto, remover esse parâmetro não tem nenhum impacto funcional.

    Save-AzVMImage -InputObject $VM -Name $Name ...
    
    Save-AzVMImage -ResourceId $Id -Name $Name ...
    

    Depois

    Save-AzVMImage -InputObject $VM ...
    
    Save-AzVMImage -ResourceId $Id ...
    
  • Adição da propriedade ProtectionPolicy para encapsular a propriedade ProtectFromScaleIn em PSVirtualMachineScaleSetVM

    Antes

    $vmss = Get-AzVMssVM ...
    $vmss.ProtectFromScaleIn = $true
    
    $vmss = Update-AzVMssVM ...
    $vmss.ProtectFromScaleIn = $true
    
    $vmss = Remove-AzVMssVMDataDisk ...
    $vmss.ProtectFromScaleIn = $true
    

    Depois

    $vmss = Get-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Update-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Remove-AzVMssVMDataDisk ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    
  • Adição da propriedade EncryptionSettingsCollection para delimitar a propriedade EncryptionSettings em PSDisk

    Antes

    $disk = New-AzDisk ... | Set-AzDiskDiskEncrytionKey ...
    $disk.EncryptionSettings
    
    $disk = New-AzDisk ... | Set-AzDiskKeyEncrytionKey ...
    $disk.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateDiskEncryptionKey ...
    $update.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateKeyEncryptionKey ...
    $update.EncryptionSettings
    

    Depois

    $disk = New-AzDisk ... | Set-AzDiskDiskEncrytionKey ...
    $disk.EncryptionSettingsCollection.EncryptionSettings
    
    $disk = New-AzDisk ... | Set-AzDiskKeyEncrytionKey ...
    $disk.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateDiskEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateKeyEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
  • Adição da propriedade EncryptionSettingsCollection para delimitar a propriedade EncryptionSettings em PSSnapshot

    Antes

    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotDiskEncryptionKey ...
    $snap.EncryptionSettings
    
    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotKeyEncryptionKey ...
    $snap.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateDiskEncryptionKey ...
    $update.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateKeyEncryptionKey ...
    $update.EncryptionSettings
    

    Depois

    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotDiskEncryptionKey ...
    $snap.EncryptionSettingsCollection.EncryptionSettings
    
    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotKeyEncryptionKey ...
    $snap.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateDiskEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateKeyEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
  • Removida a propriedade VirtualMachineProfile de PSVirtualMachineScaleSet

    Antes

    $vmss = New-AzVMSSConfig ...
    $vmss.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled = $true
    

    Depois

    $vmss = New-AzVMSSConfig ...
    $vmss.AdditionalCapabilities.UltraSSDEnabled = $true
    
  • O cmdlet Set-AzVMBootDiagnostic removeu o alias para Set-AzVMBootDiagnostics

    Antes

    Usando apelido obsoleto

    Set-AzVMBootDiagnostics
    

    Depois

    Set-AzVMBootDIagnostic
    
  • O cmdlet Export-AzLogAnalyticThrottledRequest removeu o alias para Export-AzLogAnalyticThrottledRequests

    Antes

    Usando apelido descontinuado

    Export-AzLogAnalyticThrottledRequests
    

    Depois

    Export-AzLogAnalyticThrottledRequest
    

Az.HDInsight

  • Remoção dos cmdlets Grant-AzHDInsightHttpServicesAccess e Revoke-AzHDInsightHttpServicesAccess. Eles não são mais necessários porque o acesso HTTP está sempre habilitado em todos os clusters HDInsight.
  • Adicionado um novo Set-AzHDInsightGatewayCredential cmdlet. Use este cmdlet para alterar o nome de usuário e a senha HTTP do gateway (substitui Grant-AzHDInsightHttpServicesAccess).
  • Atualizou o Get-AzHDInsightJobOutput cmdlet para dar suporte ao acesso granular baseado em função à chave de armazenamento.
    • Os usuários com funções de Operador de Cluster, Colaborador ou Proprietário do HDInsight não serão afetados.
    • Os usuários com apenas a função Leitor precisarão especificar DefaultStorageAccountKey o parâmetro explicitamente.

Para obter mais informações sobre essas alterações de acesso baseadas em função, consulte aka.ms/hdi-config-update

Antes

Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential

Depois

Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential

Usuários com apenas o papel de Leitor para cmdlet Get-AzHDInsightJobOutput

Antes

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId

Depois

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId -DefaultStorageAccountKey $storageAccountKey

Az.Storage

  • Os namespaces para os tipos retornados de cmdlets de Blob, Fila e Arquivo foram alterados de Microsoft.WindowsAzure.Storage para Microsoft.Azure.Storage. Embora essa não seja tecnicamente uma alteração da falha de acordo com a política de alteração da falha, ela pode exigir algumas alterações no código que usa os métodos do SDK do .NET de Armazenamento para interagir com os objetos retornados desses cmdlets.

    Exemplo 1: Adicionar uma mensagem a uma fila (alterar o namespace do objeto CloudQueueMessage)

    Antes:

    $queue = Get-AzStorageQueue –Name $queueName –Context $ctx
    $queueMessage = New-Object -TypeName "Microsoft.WindowsAzure.Storage.Queue.CloudQueueMessage,$($queue.CloudQueue.GetType().Assembly.FullName)" -ArgumentList "This is message 1"
    $queue.CloudQueue.AddMessageAsync($QueueMessage)
    

    Depois:

    $queue = Get-AzStorageQueue –Name $queueName –Context $ctx
    $queueMessage = New-Object -TypeName "Microsoft.Azure.Storage.Queue.CloudQueueMessage,$($queue.CloudQueue.GetType().Assembly.FullName)"  -ArgumentList "This is message 1"
    $queue.CloudQueue.AddMessageAsync($QueueMessage)
    

    Exemplo 2: Recuperar atributos de Blob/Arquivo com AccessCondition (alterar namespace do objeto AccessCondition)

    Antes:

    $accessCondition= New-Object Microsoft.WindowsAzure.Storage.AccessCondition
    
    $blob = Get-AzureStorageBlob -Container $containerName -Blob $blobName
    $blob.ICloudBlob.FetchAttributes($accessCondition)
    
    $file = Get-AzureStorageFile -ShareName $shareName -Path $filepath
    $file.FetchAttributes($accessCondition)
    

    Depois:

    $accessCondition= New-Object Microsoft.Azure.Storage.AccessCondition
    
    $blob = Get-AzureStorageBlob -Container $containerName -Blob $blobName
    $blob.ICloudBlob.FetchAttributes($accessCondition)
    
    $file = Get-AzureStorageFile -ShareName $shareName -Path $filepath
    $file.FetchAttributes($accessCondition)
    
  • Embora essa não seja tecnicamente uma alteração interruptiva, você observará diferenças de saída na propriedade Sku.Name das contas de armazenamento retornadas das alterações em New/Get/Set-AzStorageAccount são descritas a seguir. (Após a alteração, a saída e a entrada do SkuName são alinhadas.)

    • "StandardLRS" –> "Standard_LRS";
    • "StandardGRS" –> "Standard_GRS";
    • "StandardRAGRS" –> "Standard_RAGRS";
    • "StandardZRS" –> "Standard_ZRS";
    • "PremiumLRS" –> "Premium_LRS";
  • O comportamento de serviço padrão ao criar uma conta de armazenamento sem especificar um Tipo foi alterado. Nas versões anteriores, quando uma conta de armazenamento foi criada sem especificação de Kind, o tipo de conta de armazenamento Storage foi usado; na nova versão, StorageV2 é o valor padrão de Kind. Se você precisar criar uma conta de Armazenamento V1 com o 'Kind' 'Storage', adicione o parâmetro '-Kind Storage'

    Exemplo: Criar uma conta de armazenamento (alteração de tipo padrão)

    Antes:

    PS c:\> New-AzStorageAccount -ResourceGroupName groupname -Name accountname -SkuName Standard_LRS -Location "westus"
    
    StorageAccountName ResourceGroupName Location SkuName     Kind      AccessTier CreationTime          ProvisioningState EnableHttpsTrafficOnly
    ------------------ ----------------- -------- -------     ----      ---------- ------------          ----------------- ----------------------
    accountname        groupname         westus   StandardLRS Storage   Hot        4/17/2018 10:34:32 AM Succeeded         False
    

    Depois:

    PS c:\> New-AzStorageAccount -ResourceGroupName groupname -Name accountname -SkuName Standard_LRS -Location "westus"
    
    StorageAccountName ResourceGroupName Location SkuName      Kind      AccessTier CreationTime          ProvisioningState EnableHttpsTrafficOnly
    ------------------ ----------------- -------- -------      ----      ----------  ------------          ----------------- ----------------------
    accountname        groupname         westus   Standard_LRS StorageV2 Hot        4/17/2018 10:34:32 AM Succeeded         False