Cambios importantes en Az 1.0.0
Este documento proporciona información detallada sobre los cambios entre AzureRM 6.x y el nuevo módulo Az versión 1.x y versiones posteriores. La tabla de contenido le guiará por la ruta de migración completa, incluidos los cambios específicos del módulo que pueden afectar a los scripts.
Para obtener consejos generales sobre cómo comenzar con una migración de AzureRM a Az, consulte Iniciar la migración de AzureRM a Az.
Importante
Ha habido también cambios importantes entre Az 1.0.0 y Az 2.0.0. Después de seguir esta guía de actualización de AzureRM a Az, consulte los cambios importantes de Az 2.0.0 para averiguar si necesita realizar cambios adicionales.
Tabla de contenido
- Cambios importantes generales
- Cambio de prefijo en el nombre de los cmdlets
- Cambio de nombre de los módulos
- Módulos eliminados
- Windows PowerShell 5.1 y .NET 4.7.2
- Eliminación temporal del inicio de sesión de usuario con PSCredential
- Inicio de sesión predeterminado con código del dispositivo en lugar del símbolo del sistema del explorador web
- Cambios importantes en los módulos
- Az.ApiManagement (anteriormente AzureRM.ApiManagement)
- Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption y AzureRM.UsageAggregates)
- Az.CognitiveServices (anteriormente AzureRM.CognitiveServices)
- Az.Compute (anteriormente AzureRM.Compute)
- Az.DataFactory (anteriormente AzureRM.DataFactories y AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics (anteriormente AzureRM.DataLakeAnalytics)
- Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)
- Az.KeyVault (anteriormente AzureRM.KeyVault)
- Az.Media (anteriormente AzureRM.Media)
- Az.Monitor (anteriormente AzureRM.Insights)
- Az.Network (anteriormente AzureRM.Network)
- Az.OperationalInsights (anteriormente AzureRM.OperationalInsights)
- Az.RecoveryServices (anteriormente AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup y AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources (anteriormente AzureRM.Resources)
- Az.ServiceFabric (anteriormente AzureRM.ServiceFabric)
- Az.Sql (anteriormente AzureRM.Sql)
- Az.Storage (anteriormente Azure.Storage y AzureRM.Storage)
- Az.Websites (anteriormente AzureRM.Websites)
Cambios importantes generales
En esta sección se describen los cambios importantes generales que forman parte de este nuevo diseño del módulo Az.
Cambio de prefijo en el nombre de los cmdlets
En el módulo AzureRM, los cmdlets usan AzureRM o Azure como un prefijo de sustantivo. Para simplificar y normalizar los nombres de los cmdlets, todos usan "Az" como prefijo del nombre. Por ejemplo:
Get-AzureRMVM
Get-AzureKeyVaultSecret
Ha cambiado a:
Get-AzVM
Get-AzKeyVaultSecret
Para facilitar la transición a estos nuevos nombres de cmdlet, Az incorpora dos nuevos cmdlets, Enable-AzureRmAlias y Disable-AzureRmAlias. Enable-AzureRmAlias crea un alias para los nombres de cmdlet antiguos en AzureRM que se asignan a los nombres de cmdlet de Az más recientes. El argumento -Scope con Enable-AzureRmAlias le permite elegir dónde se habilitan los alias.
Por ejemplo, el siguiente script de AzureRM:
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Se puede ejecutar con cambios mínimos con Enable-AzureRmAlias:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Al ejecutar Enable-AzureRmAlias -Scope CurrentUser, se habilitarán los alias para todas las sesiones de PowerShell que abra por lo que, después de ejecutar este cmdlet, no sería necesario realizar ningún cambio en un script como este:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Para obtener información detallada sobre el uso de los cmdlets de alias, consulte la Referencia de Enable-AzureRmAlias.
Cuando esté listo para deshabilitar los alias, Disable-AzureRmAlias quita los alias creados. Para obtener información detallada, consulte la Referencia de Disable-AzureRmAlias.
Importante
Al deshabilitar los alias, asegúrese de que se deshabilitan para todos los ámbitos en los que han estado habilitados.
Cambio de nombre de los módulos
Los nombres de los módulo han cambiado de AzureRM.* a Az.*, excepto los siguientes módulos:
| Módulo AzureRM | Módulo Az |
|---|---|
| Azure.Storage | Az.Storage |
| Azure.AnalysisServices | Az.AnalysisServices |
| AzureRM.Profile | Az.Accounts |
| AzureRM.Insights | Az.Monitor |
| AzureRM.DataFactories | Az.DataFactory |
| AzureRM.DataFactoryV2 | Az.DataFactory |
| AzureRM.RecoveryServices.Backup | Az.RecoveryServices |
| AzureRM.RecoveryServices.SiteRecovery | Az.RecoveryServices |
| AzureRM.Tags | Az.Resources |
| AzureRM.MachineLearningCompute | Az.MachineLearning |
| AzureRM.UsageAggregates | Az.Billing |
| AzureRM.Consumption | Az.Billing |
El cambio de nombre de los módulos implica que todos los scripts que usen #Requires o Import-Module para cargar módulos específicos deben cambiarse para que usen el nuevo módulo en su lugar. En el caso de los módulos en los que no ha cambiado el sufijo del cmdlet, esto significa que, aunque ha cambiado el nombre del módulo, no ha cambiado el sufijo que indica el espacio de la operación.
Migración de las instrucciones #Requires e Import-Module
Es necesario actualizar los scripts que usan #Requires o Import-Module para declarar una dependencia en los módulos AzureRM para que usen los nuevos nombres de módulos. Por ejemplo:
#Requires -Module AzureRM.Compute
Se debe cambiar a:
#Requires -Module Az.Compute
Para Import-Module:
Import-Module -Name AzureRM.Compute
Se debe cambiar a:
Import-Module -Name Az.Compute
Migración de las invocaciones de cmdlet completas
Los scripts que usan las invocaciones de cmdlets calificadas para el módulo, como esta:
AzureRM.Compute\Get-AzureRmVM
Se deben cambiar para que usen los nuevos nombres de módulos y cmdlets:
Az.Compute\Get-AzVM
Migración de las dependencias de manifiesto de módulo
Los módulos que expresan dependencias en módulos AzureRM mediante un archivo de manifiesto de módulo (. psd1) deben actualizar los nombres de los módulos en su sección RequiredModules:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
Se deben cambiar a:
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
Módulos eliminados
Se han eliminado los siguientes módulos:
AzureRM.BackupAzureRM.Compute.ManagedServiceAzureRM.Scheduler
Las herramientas de estos servicios ya no tiene un soporte técnico activo. Se recomienda a los clientes que cambien a otros servicios tan pronto como les sea posible.
Windows PowerShell 5.1 y .NET 4.7.2
Para usar Az con PowerShell 5.1 para Windows, es necesario instalar .NET Framework 4.7.2. El uso de PowerShell Core 6.x o versiones posteriores no requiere .NET Framework.
Eliminación temporal del inicio de sesión de usuario con PSCredential
Debido a los cambios en el flujo de autenticación de .NET Standard, hemos quitando temporalmente el inicio de sesión de usuario mediante PSCredential. Esta funcionalidad se volverá a incorporar a PowerShell 5.1 para Windows en la versión del 15/1/2019. En esta incidencia de GitHub se trata este asunto detalladamente.
Inicio de sesión predeterminado con código del dispositivo en lugar del símbolo del sistema del explorador web
Debido a los cambios en el flujo de autenticación de .NET Standard, estamos usando el inicio de sesión de dispositivo como flujo de inicio de sesión predeterminado durante el inicio de sesión interactivo. El inicio de sesión basado en el explorador web se volverá a incorporar en PowerShell 5.1 para Windows como configuración predeterminada en la versión del 15/1/2019. En ese momento, los usuarios podrán elegir iniciar sesión de dispositivo con un parámetro Switch.
Cambios importantes en los módulos
En esta sección se describen cambios importantes específicos para módulos y cmdlets individuales.
Az.ApiManagement (anteriormente AzureRM.ApiManagement)
- Se han eliminado los siguientes cmdlets:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- En su lugar, use el cmdlet Set-AzApiManagement para establecer estas propiedades
- Se han eliminado las siguientes propiedades:
- Se han quitado las propiedades
PortalHostnameConfiguration,ProxyHostnameConfiguration,ManagementHostnameConfigurationyScmHostnameConfigurationdel tipoPsApiManagementHostnameConfigurationdePsApiManagementContext. En su lugar, usePortalCustomHostnameConfiguration,ProxyCustomHostnameConfiguration,ManagementCustomHostnameConfigurationyScmCustomHostnameConfigurationdel tipoPsApiManagementCustomHostNameConfiguration. - Se ha quitado la propiedad
StaticIPsde PsApiManagementContext. La propiedad se ha dividido enPublicIPAddressesyPrivateIPAddresses. - Se ha quitado la propiedad necesaria
Locationdel cmdlet New-AzureApiManagementVirtualNetwork.
- Se han quitado las propiedades
Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption y AzureRM.UsageAggregates)
- Se ha quitado el parámetro
InvoiceNamedel cmdletGet-AzConsumptionUsageDetail. Los scripts debe usar otros parámetros de la identidad para la factura.
Az.CognitiveServices (anteriormente AzureRM.CognitiveServices)
- Se ha quitado el conjunto de parámetros
GetSkusWithAccountParamSetNamedel cmdletGet-AzCognitiveServicesAccountSkus. Debe obtener los SKU por tipo de cuenta y ubicación, en lugar de usar ResourceGroupName y AccountName.
Az.Compute (anteriormente AzureRM.Compute)
- Se han quitado
IdentityIdsde la propiedadIdentityen los objetosPSVirtualMachineyPSVirtualMachineScaleSet. Los scripts ya no deberán usar el valor de este campo para tomar decisiones de procesamiento. - El tipo de la propiedad
InstanceViewdel objetoPSVirtualMachineScaleSetVMha cambiado deVirtualMachineInstanceViewaVirtualMachineScaleSetVMInstanceView. - Se han quitado las propiedades
AutoOSUpgradePolicyyAutomaticOSUpgradede la propiedadUpgradePolicy. - El tipo de la propiedad
Skudel objetoPSSnapshotUpdateha cambiado deDiskSkuaSnapshotSku. VmScaleSetVMParameterSetse ha quitado del cmdletAdd-AzVMDataDisk; ya no se puede agregar un disco de datos individualmente a una máquina virtual de un conjunto de escalado.
Az.DataFactory (anteriormente AzureRM.DataFactories y AzureRM.DataFactoryV2)
- El parámetro
GatewayNameahora es obligatorio en el cmdletNew-AzDataFactoryEncryptValue. - Se ha quitado el cmdlet
New-AzDataFactoryGatewayKey. - Se ha quitado el parámetro
LinkedServiceNamedel cmdletGet-AzDataFactoryV2ActivityRun. Los scripts ya no deberán usar el valor de este campo para tomar decisiones de procesamiento.
Az.DataLakeAnalytics (anteriormente AzureRM.DataLakeAnalytics)
- Se han quitado los cmdlets en desuso
New-AzDataLakeAnalyticsCatalogSecret,Remove-AzDataLakeAnalyticsCatalogSecretySet-AzDataLakeAnalyticsCatalogSecret.
Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)
En los siguientes cmdlets, se ha cambiado del parámetro
Encodingdel tipoFileSystemCmdletProviderEncodingaSystem.Text.Encoding. Este cambio ha quitado los valores de codificaciónStringyOem. Todos los demás valores de codificación anteriores se mantienen.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Se ha quitado el alias de propiedad en desuso
Tagsde los cmdletsNew-AzDataLakeStoreAccountySet-AzDataLakeStoreAccount.Los scripts que usen:
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}Se deben cambiar a:
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}Se han quitado las propiedades en desuso
Identity,EncryptionState,EncryptionProvisioningState,EncryptionConfig,FirewallState,FirewallRules,VirtualNetworkRules,TrustedIdProviderState,TrustedIdProviders,DefaultGroup,NewTier,CurrentTier,FirewallAllowAzureIpsdel objetoPSDataLakeStoreAccountBasic. Los scripts que usen el valor dePSDatalakeStoreAccountdevuelto desdeGet-AzDataLakeStoreAccountno deben hacer referencia a estas propiedades.
Az.KeyVault (anteriormente AzureRM.KeyVault)
- Se ha quitado la propiedad
PurgeDisabledde los objetosPSKeyVaultKeyAttributes,PSKeyVaultKeyIdentityItemyPSKeyVaultSecretAttributes. Los scripts ya no deben hacer referencia a la propiedadPurgeDisabledpara tomar decisiones de procesamiento.
Az.Media (anteriormente AzureRM.Media)
Se ha quitado el alias de propiedad en desuso
Tagsdel cmdletNew-AzMediaService. Los scripts que usen:New-AzureRMMediaService -Tags @{TagName="TagValue"}Se deben cambiar a:
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (anteriormente AzureRM.Insights)
Se han quitado los nombres en plural de los parámetros
CategoriesyTimegrainsen favor de los nombres en singular en el cmdletSet-AzDiagnosticSetting. Los scripts que usen:Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2Se deben cambiar a:
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (anteriormente AzureRM.Network)
- Se ha quitado el parámetro en desuso
ResourceIddel cmdletGet-AzServiceEndpointPolicyDefinition. - Se ha quitado la propiedad en desuso
EnableVmProtectiondel objetoPSVirtualNetwork. - Se ha quitado el cmdlet en desuso
Set-AzVirtualNetworkGatewayVpnClientConfig.
Los scripts no deben tomar decisiones de procesamiento en función de los valores de estos campos.
Az.OperationalInsights (anteriormente AzureRM.OperationalInsights)
Se ha quitado el conjunto de parámetros predeterminados de
Get-AzOperationalInsightsDataSource, yByWorkspaceNameByKindha pasado a ser el conjunto de parámetros predeterminados.Los scripts que enumeren orígenes de datos mediante:
Get-AzureRmOperationalInsightsDataSourceSe deben cambiar para especificar -Kind:
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (anteriormente AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup y AzureRM.RecoveryServices.SiteRecovery)
- Se ha quitado el parámetro
Encryptiondel cmdletNew/Set-AzRecoveryServicesAsrPolicy. - El parámetro
TargetStorageAccountNameahora es obligatorio para las restauraciones de discos administrados en el cmdletRestore-AzRecoveryServicesBackupItem. - Se han quitado los parámetros
StorageAccountNameyStorageAccountResourceGroupNamedel cmdletRestore-AzRecoveryServicesBackupItem. - Se ha quitado el parámetro
Namedel cmdletGet-AzRecoveryServicesBackupContainer.
Az.Resources (anteriormente AzureRM.Resources)
Se ha quitado el parámetro
Skudel cmdletNew/Set-AzPolicyAssignment.Se ha quitado el parámetro
Passwordde los cmdletsNew-AzADServicePrincipalyNew-AzADSpCredential. Las contraseñas se generan automáticamente. Los scripts que proporcionaban la contraseña:New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPasswordSe deben cambiar para que tomen la contraseña de la salida:
$credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 $secPassword = $credential.Secret
Az.ServiceFabric (anteriormente AzureRM.ServiceFabric)
- Se han cambiado los siguientes tipos de valor devuelto de cmdlet:
- Se ha quitado la propiedad
ServiceTypeHealthPoliciesde tipoApplicationHealthPolicy. - Se ha quitado la propiedad
ApplicationHealthPoliciesde tipoClusterUpgradeDeltaHealthPolicy. - Se ha quitado la propiedad
OverrideUserUpgradePolicyde tipoClusterUpgradePolicy. - Estos cambios afectan a los siguientes cmdlets:
- Add-AzServiceFabricClientCertificate
- Add-AzServiceFabricClusterCertificate
- Add-AzServiceFabricNode
- Add-AzServiceFabricNodeType
- Get-AzServiceFabricCluster
- Remove-AzServiceFabricClientCertificate
- Remove-AzServiceFabricClusterCertificate
- Remove-AzServiceFabricNode
- Remove-AzServiceFabricNodeType
- Remove-AzServiceFabricSetting
- Set-AzServiceFabricSetting
- Set-AzServiceFabricUpgradeType
- Update-AzServiceFabricDurability
- Update-AzServiceFabricReliability
- Se ha quitado la propiedad
Az.Sql (anteriormente AzureRM.Sql)
- Se han quitado los parámetros
StateyResourceIddel cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy. - Se han quitado los cmdlets en desuso
Get/Set-AzSqlServerBackupLongTermRetentionVault,Get/Start/Stop-AzSqlServerUpgrade,Get/Set-AzSqlDatabaseAuditingPolicy,Get/Set-AzSqlServerAuditingPolicy,Remove-AzSqlDatabaseAuditingyRemove-AzSqlServerAuditing - Se ha quitado el parámetro en desuso
Currentdel cmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy. - Se ha quitado el parámetro en desuso
DatabaseNamedel cmdletGet-AzSqlServerServiceObjective. - Se ha quitado el parámetro en desuso
PrivilegedLogindel cmdletSet-AzSqlDatabaseDataMaskingPolicy.
Az.Storage (anteriormente Azure.Storage y AzureRM.Storage)
- Para poder crear un contexto de almacenamiento de Oauth solo con el nombre de la cuenta de almacenamiento, se ha cambiado el conjunto de parámetros predeterminados a
OAuthParameterSet.- Ejemplo:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Ejemplo:
- El parámetro
Locationahora es obligatorio en el cmdletGet-AzStorageUsage. - Los métodos de Storage API ahora usan el patrón asincrónico basado en tareas (TAP), en lugar de llamadas de API sincrónicas. Los ejemplos siguientes muestran los nuevos comandos asincrónicos:
Instantánea de blob
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$b.ICloudBlob.Snapshot()
Az:
$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$task = $b.ICloudBlob.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
Compartir instantánea
AzureRM:
$Share = Get-AzureStorageShare -Name $containerName -Context $ctx
$snapshot = $Share.Snapshot()
Az:
$Share = Get-AzStorageShare -Name $containerName -Context $ctx
$task = $Share.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
Recuperar los blobs eliminados temporalmente
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$b.ICloudBlob.Undelete()
Az:
$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$task = $b.ICloudBlob.UndeleteAsync()
$task.Wait()
Establecer nivel del blob
AzureRM:
$blockBlob = Get-AzureStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$blockBlob.ICloudBlob.SetStandardBlobTier("hot")
$pageBlob = Get-AzureStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$pageBlob.ICloudBlob.SetPremiumBlobTier("P4")
Az:
$blockBlob = Get-AzStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$task = $blockBlob.ICloudBlob.SetStandardBlobTierAsync("hot")
$task.Wait()
$pageBlob = Get-AzStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$task = $pageBlob.ICloudBlob.SetPremiumBlobTierAsync("P4")
$task.Wait()
Az.Websites (anteriormente AzureRM.Websites)
- Se han quitado las propiedades en desuso de los objetos
PSAppServicePlan,PSCertificate,PSCloningInfoyPSSite.