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
Managedde los cmdletsNew-AzAvailabilitySetyUpdate-AzAvailabilitySet, y se ha cambiado porSku = Aligned.Antes del
Update-AzAvailabilitySet -ManagedDespués
Update-AzAvailabilitySet -Sku AlignedPara mantener la coherencia, se ha eliminado el parámetro
Imagede los conjuntos de parámetros "ByName" y "ByResourceId" enUpdate-AzImage.Antes del
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 $tagsDespués
Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags Update-AzImage -ResourceId $Id -Tag $tagsPara mantener la coherencia, se ha eliminado el parámetro
Namede los conjuntos de parámetros "ByObject" y "ByResourceId" enRestart-AzVM.Antes del
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 $NameDespués
Restart-AzVM -InputObject $VM Restart-AzVM -ResourceId $IdPara mantener la coherencia, se ha eliminado el parámetro
Namede los conjuntos de parámetros "ByObject" y "ByResourceId" enStart-AzVM.Antes del
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 $NameDespués
Start-AzVM -InputObject $VM Start-AzVM -ResourceId $IdPara mantener la coherencia, se ha eliminado el parámetro
Namede los conjuntos de parámetros "ByObject" y "ByResourceId" enStop-AzVM.Antes del
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 $NameDespués
Stop-AzVM -InputObject $VM Stop-AzVM -ResourceId $IdPara mantener la coherencia, se ha eliminado el parámetro
Namede los conjuntos de parámetros "ByObject" y "ByResourceId" enRemove-AzVM.Antes del
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 $NameDespués
Remove-AzVM -InputObject $VM Remove-AzVM -ResourceId $IdPara mantener la coherencia, se ha eliminado el parámetro
Namede los conjuntos de parámetros "ByObject" y "ByResourceId" enSet-AzVM.Antes del
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
Namede los conjuntos de parámetros "ByObject" y "ByResourceId" enSave-AzVMImage.Antes del
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
ProtectFromScaleInenPSVirtualMachineScaleSetVM.Antes del
$vmss = Get-AzVMssVM ... $vmss.ProtectFromScaleIn = $true $vmss = Update-AzVMssVM ... $vmss.ProtectFromScaleIn = $true $vmss = Remove-AzVMssVMDataDisk ... $vmss.ProtectFromScaleIn = $trueDespués
$vmss = Get-AzVMssVM ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true $vmss = Update-AzVMssVM ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true $vmss = Remove-AzVMssVMDataDisk ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $trueSe ha agregado la propiedad
EncryptionSettingsCollectionpara incluir la propiedadEncryptionSettingsenPSDisk.Antes del
$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.EncryptionSettingsDespué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.EncryptionSettingsSe ha agregado la propiedad
EncryptionSettingsCollectionpara incluir la propiedadEncryptionSettingsenPSSnapshot.Antes del
$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.EncryptionSettingsDespué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.EncryptionSettingsSe ha eliminado la propiedad
VirtualMachineProfiledePSVirtualMachineScaleSet.Antes del
$vmss = New-AzVMSSConfig ... $vmss.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled = $trueDespués
$vmss = New-AzVMSSConfig ... $vmss.AdditionalCapabilities.UltraSSDEnabled = $trueEn el cmdlet
Set-AzVMBootDiagnosticse ha eliminado el alias aSet-AzVMBootDiagnostics.Antes del
Uso de alias en desuso
Set-AzVMBootDiagnosticsDespués
Set-AzVMBootDIagnosticEn el cmdlet
Export-AzLogAnalyticThrottledRequestse ha eliminado el alias aExport-AzLogAnalyticThrottledRequests.Antes del
Uso de alias en desuso
Export-AzLogAnalyticThrottledRequestsDespués
Export-AzLogAnalyticThrottledRequest
Az.HDInsight
- Se han eliminado los cmdlets
Grant-AzHDInsightHttpServicesAccessyRevoke-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-AzHDInsightJobOutputpara 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
DefaultStorageAccountKeyexplícitamente.
Para más información acerca de estos cambios de acceso basado en roles, consulte aka.ms/hdi-config-update.
Antes del
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 del
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.StorageaMicrosoft.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 (se ha cambiado 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 (se ha cambiado el 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 almacenamiento devueltas desde
New/Get/Set-AzStorageAccountcon los siguientes cambios. (Después del 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
Kindespecificado, se usaba el tipo de cuenta de almacenamientoStorage; en la nueva versión,StorageV2es el valor deKindpredeterminado. 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 FalseDespué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