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 cmdletsNew-AzAvailabilitySet
yUpdate-AzAvailabilitySet
, y se ha cambiado porSku = 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" enUpdate-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" enRestart-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" enStart-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" enStop-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" enRemove-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" enSet-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" enSave-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
enPSVirtualMachineScaleSetVM
.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 propiedadEncryptionSettings
enPSDisk
.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 propiedadEncryptionSettings
enPSSnapshot
.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
dePSVirtualMachineScaleSet
.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 aSet-AzVMBootDiagnostics
.Antes
Uso de alias en desuso
Set-AzVMBootDiagnostics
Después
Set-AzVMBootDIagnostic
En el cmdlet
Export-AzLogAnalyticThrottledRequest
se ha eliminado el alias aExport-AzLogAnalyticThrottledRequests
.Antes
Uso de alias en desuso
Export-AzLogAnalyticThrottledRequests
Después
Export-AzLogAnalyticThrottledRequest
Az.HDInsight
- Se han eliminado los cmdlets
Grant-AzHDInsightHttpServicesAccess
yRevoke-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 aGrant-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
aMicrosoft.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 almacenamientoStorage
; en la nueva versión,StorageV2
es el valor deKind
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