Guía para la migración para Az 2.0.0

En este documento se describen los cambios entre las versiones 1.0.0 y 2.0.0 de Az.

Tabla de contenido

Cambios importantes en los módulos

Az.Compute

  • Se ha eliminado el parámetro Managed de los cmdlets New-AzAvailabilitySet y Update-AzAvailabilitySet, y se ha cambiado por Sku = Aligned.

    Antes

    Update-AzAvailabilitySet -Managed
    

    Después

    Update-AzAvailabilitySet -Sku Aligned
    
  • Para mantener la coherencia, se ha eliminado el parámetro Image de los conjuntos de parámetros "ByName" y "ByResourceId" en Update-AzImage.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento ImageName pasado, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags
    
    Update-AzImage -ResourceId $Id -Tag $tags
    
  • Para mantener la coherencia, se ha eliminado el parámetro Name de los conjuntos de parámetros "ByObject" y "ByResourceId" en Restart-AzVM.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento Name que se pasa, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Restart-AzVM -InputObject $VM
    
    Restart-AzVM -ResourceId $Id
    
  • Para mantener la coherencia, se ha eliminado el parámetro Name de los conjuntos de parámetros "ByObject" y "ByResourceId" en Start-AzVM.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento Name que se pasa, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Start-AzVM -InputObject $VM
    
    Start-AzVM -ResourceId $Id
    
  • Para mantener la coherencia, se ha eliminado el parámetro Name de los conjuntos de parámetros "ByObject" y "ByResourceId" en Stop-AzVM.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento Name que se pasa, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Stop-AzVM -InputObject $VM
    
    Stop-AzVM -ResourceId $Id
    
  • Para mantener la coherencia, se ha eliminado el parámetro Name de los conjuntos de parámetros "ByObject" y "ByResourceId" en Remove-AzVM.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento Name que se pasa, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Remove-AzVM -InputObject $VM
    
    Remove-AzVM -ResourceId $Id
    
  • Para mantener la coherencia, se ha eliminado el parámetro Name de los conjuntos de parámetros "ByObject" y "ByResourceId" en Set-AzVM.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento Name que se pasa, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Set-AzVM -InputObject $VM ...
    
    Set-AzVM -ResourceId $Id ...
    
  • Para mantener la coherencia, se ha eliminado el parámetro Name de los conjuntos de parámetros "ByObject" y "ByResourceId" en Save-AzVMImage.

    Antes

    Tenga en cuenta que el siguiente código es funcional pero no se usa el elemento Name que se pasa, por lo que quitar este parámetro no tiene ningún impacto funcional.

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

    Después

    Save-AzVMImage -InputObject $VM ...
    
    Save-AzVMImage -ResourceId $Id ...
    
  • Se ha agregado la propiedad ProtectionPolicy para encapsular la propiedad ProtectFromScaleIn en PSVirtualMachineScaleSetVM.

    Antes

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

    Después

    $vmss = Get-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Update-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Remove-AzVMssVMDataDisk ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    
  • Se ha agregado la propiedad EncryptionSettingsCollection para incluir la propiedad EncryptionSettings en 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
    

    Después

    $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
    
  • Se ha agregado la propiedad EncryptionSettingsCollection para incluir la propiedad EncryptionSettings en 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
    

    Después

    $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
    
  • Se ha eliminado la propiedad VirtualMachineProfile de PSVirtualMachineScaleSet.

    Antes

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

    Después

    $vmss = New-AzVMSSConfig ...
    $vmss.AdditionalCapabilities.UltraSSDEnabled = $true
    
  • En el cmdlet Set-AzVMBootDiagnostic se ha eliminado el alias a Set-AzVMBootDiagnostics.

    Antes

    Uso de alias en desuso

    Set-AzVMBootDiagnostics
    

    Después

    Set-AzVMBootDIagnostic
    
  • En el cmdlet Export-AzLogAnalyticThrottledRequest se ha eliminado el alias a Export-AzLogAnalyticThrottledRequests.

    Antes

    Uso de alias en desuso

    Export-AzLogAnalyticThrottledRequests
    

    Después

    Export-AzLogAnalyticThrottledRequest
    

Az.HDInsight

  • Se han eliminado los cmdlets Grant-AzHDInsightHttpServicesAccess y Revoke-AzHDInsightHttpServicesAccess. Ya no son necesarias porque siempre está habilitado el acceso HTTP en todos los clústeres de HDInsight.
  • Se ha agregado un nuevo cmdlet Set-AzHDInsightGatewayCredential. Use este cmdlet para cambiar el nombre de usuario y la contraseña HTTP de la puerta de enlace (reemplaza a Grant-AzHDInsightHttpServicesAccess).
  • Se ha actualizado el cmdlet Get-AzHDInsightJobOutput para admitir el acceso granular basado en roles a la clave de almacenamiento.
    • No se verán afectados los usuarios con roles de operador, colaborador o propietario de clúster de HDInsight.
    • Los usuarios con el rol de lector deben especificar el parámetro DefaultStorageAccountKey explícitamente.

Para más información acerca de estos cambios de acceso basado en roles, consulte aka.ms/hdi-config-update.

Antes

Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential

Después

Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential

Usuarios que tengan solo el rol de lector para el cmdlet Get-AzHDInsightJobOutput

Antes

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId

Después

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

Az.Storage

  • Los espacios de nombres para los tipos devueltos desde los cmdlets Blob, Queue y File han cambiado su espacio de nombres de Microsoft.WindowsAzure.Storage a Microsoft.Azure.Storage. Aunque esto no es técnicamente un cambio importante según la directiva de cambios importantes, puede requerir algunos cambios en el código que usa los métodos desde el SDK de .Net de Storage para interactuar con los objetos devueltos por estos cmdlets.

    Ejemplo 1: agregar un mensaje a una cola (cambio en el espacio de nombres del 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)
    

    Después:

    $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)
    

    Ejemplo 2: recuperar los atributos de un blob o un archivo con AccessCondition (cambio del espacio de nombres del 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)
    

    Después:

    $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)
    
  • Aunque no es técnicamente un cambio importante, observará diferencias de salida en la propiedad Sku.Name de las cuentas de Storage devueltas desde New/Get/Set-AzStorageAccount con los siguientes cambios (tras el cambio, la salida y la entrada SkuName se alinean).

    • "StandardLRS" -> "Standard_LRS";
    • "StandardGRS" -> "Standard_GRS";
    • "StandardRAGRS" -> "Standard_RAGRS";
    • "StandardZRS" -> "Standard_ZRS";
    • "PremiumLRS" -> "Premium_LRS";
  • Ha cambiado el comportamiento del servicio predeterminado al crear una cuenta de almacenamiento sin especificar un tipo. En versiones anteriores, cuando se creaba una cuenta de almacenamiento sin ningún elemento Kind especificado, se usaba el tipo de cuenta de almacenamiento Storage; en la nueva versión, StorageV2 es el valor de Kind predeterminado. Si necesita crear una cuenta de almacenamiento V1 de tipo "Storage", agregue el parámetro "-Kind Storage".

    Ejemplo: crear una cuenta de almacenamiento (se ha cambiado el tipo predeterminado).

    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
    

    Después:

    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