Guia de migração para o Az 2.0.0

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

Índice

Alterações interruptivas do módulo

Az.Compute

  • Foi removido o parâmetro Managed dos cmdlets New-AzAvailabilitySet e Update-AzAvailabilitySet em favor da utilização de Sku = Aligned

    Antes

    Update-AzAvailabilitySet -Managed
    

    Depois de

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

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro ImageName transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags
    
    Update-AzImage -ResourceId $Id -Tag $tags
    
  • Para consistência, foi removido o parâmetro Name dos parâmetros "ByObject" e "ByResourceId" definidos em Restart-AzVM

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro Name transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Restart-AzVM -InputObject $VM
    
    Restart-AzVM -ResourceId $Id
    
  • Para consistência, foi removido o parâmetro Name dos parâmetros "ByObject" e "ByResourceId" definidos em Start-AzVM

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro Name transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Start-AzVM -InputObject $VM
    
    Start-AzVM -ResourceId $Id
    
  • Para consistência, foi removido o parâmetro Name dos parâmetros "ByObject" e "ByResourceId" definidos em Stop-AzVM

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro Name transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Stop-AzVM -InputObject $VM
    
    Stop-AzVM -ResourceId $Id
    
  • Para consistência, foi removido o parâmetro Name dos parâmetros "ByObject" e "ByResourceId" definidos em Remove-AzVM

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro Name transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Remove-AzVM -InputObject $VM
    
    Remove-AzVM -ResourceId $Id
    
  • Para consistência, foi removido o parâmetro Name dos parâmetros "ByObject" e "ByResourceId" definidos em Set-AzVM

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro Name transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Set-AzVM -InputObject $VM ...
    
    Set-AzVM -ResourceId $Id ...
    
  • Para consistência, foi removido o parâmetro Name dos parâmetros "ByObject" e "ByResourceId" definidos em Save-AzVMImage

    Antes

    Tenha em atenção que o código abaixo funciona, mas o parâmetro Name transmitido não é utilizado, pelo que a remoção deste parâmetro não tem qualquer impacto funcional.

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

    Depois de

    Save-AzVMImage -InputObject $VM ...
    
    Save-AzVMImage -ResourceId $Id ...
    
  • Foi adicionada a 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 de

    $vmss = Get-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Update-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Remove-AzVMssVMDataDisk ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    
  • Foi adicionada a 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 de

    $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
    
  • Foi adicionada a 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 de

    $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
    
  • Foi removida a propriedade VirtualMachineProfile de PSVirtualMachineScaleSet

    Antes

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

    Depois de

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

    Antes

    Utilização de alias preterido

    Set-AzVMBootDiagnostics
    

    Depois de

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

    Antes

    Utilização de alias preterido

    Export-AzLogAnalyticThrottledRequests
    

    Depois de

    Export-AzLogAnalyticThrottledRequest
    

Az.HDInsight

  • Foram removidos os cmdlets Grant-AzHDInsightHttpServicesAccess e Revoke-AzHDInsightHttpServicesAccess. Já não são necessários porque o acesso HTTP está sempre ativado em todos os clusters do HDInsight.
  • Foi adicionado um novo cmdlet Set-AzHDInsightGatewayCredential. Utilize este cmdlet para alterar o nome de utilizador e a palavra-passe HTTP do gateway (substitui Grant-AzHDInsightHttpServicesAccess).
  • Foi atualizado o cmdlet Get-AzHDInsightJobOutput para suportar acesso granular baseado em funções à chave de armazenamento.
    • Os utilizadores com as funções Operador de Clusters, Contribuidor ou Proprietário do HDInsight não serão afetados.
    • Os utilizadores apenas com a função Leitor terão de especificar o parâmetro DefaultStorageAccountKey explicitamente.

Para obter mais informações sobre estas alterações ao acesso baseado em funções, veja aka.ms/hdi-config-update

Antes

Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential

Depois de

Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential

Utilizadores apenas com a função Leitor para o cmdlet Get-AzHDInsightJobOutput

Antes

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId

Depois de

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

Az.Storage

  • Os espaços de nomes para os tipos devolvidos dos cmdlets Blob, Fila e Ficheiro foram alterados de Microsoft.WindowsAzure.Storage para Microsoft.Azure.Storage. Embora não seja tecnicamente uma alteração interruptiva, de acordo com a respetiva política, podem ser necessárias algumas alterações ao código que utiliza os métodos do SDK .NET de Armazenamento para interagir com os objetos devolvidos por estes 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: Buscar atributos Blob/File 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 não seja tecnicamente uma alteração de quebra, você notará 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, o SkuName de entrada e saída estão alinhados.)

    • "StandardLRS" -> "Standard_LRS";
    • "StandardGRS" -> "Standard_GRS";
    • "StandardRAGRS" -> "Standard_RAGRS";
    • "StandardZRS" -> "Standard_ZRS";
    • "PremiumLRS" -> "Premium_LRS";
  • Foi alterado o comportamento de serviço padrão ao criar uma conta de armazenamento sem especificar uma Variante. Nas versões anteriores, quando foi criada uma conta de armazenamento sem qualquer atributo Kind especificado, foi utilizada a Variante da conta de armazenamento de Storage na nova versão StorageV2, sendo o valor predefinido Kind. Se precisar de criar uma conta de armazenamento V1 com a Variante "Armazenamento", 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