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 falha de módulo

Az.Compute

  • Removido o 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 ...
    
  • Propriedade ProtectionPolicy adicionada 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
    
    
  • Adicionada EncryptionSettingsCollection propriedade para incluir a propriedade EncryptionSettings dentro de 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
    
  • Adicionada EncryptionSettingsCollection propriedade para incluir a propriedade EncryptionSettings dentro de 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
    
  • Cmdlet Set-AzVMBootDiagnostic removido alias para Set-AzVMBootDiagnostics

    Antes

    Usando apelido obsoleto

    Set-AzVMBootDiagnostics
    

    Depois

    Set-AzVMBootDIagnostic
    
  • Cmdlet Export-AzLogAnalyticThrottledRequest removido alias para Export-AzLogAnalyticThrottledRequests

    Antes

    Usando apelido descontinuado

    Export-AzLogAnalyticThrottledRequests
    

    Depois

    Export-AzLogAnalyticThrottledRequest
    

Az.HDInsight

  • Removeram os 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

  • Namespaces para tipos retornados de cmdlets do Blob, Fila e Arquivo foram alterados de Microsoft.WindowsAzure.Storage para Microsoft.Azure.Storage. Embora isso não seja tecnicamente uma alteração interrompível de acordo com a política de mudanças críticas, pode exigir algumas alterações no código que utiliza os métodos do SDK de armazenamento .Net 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 tecnicamente não seja uma alteração significativa, você observará que as diferenças de saída na propriedade Sku.Name das Contas de Armazenamento retornadas das New/Get/Set-AzStorageAccount alterações são as seguintes. (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