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.Backup
AzureRM.Compute.ManagedService
AzureRM.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
,ManagementHostnameConfiguration
yScmHostnameConfiguration
del tipoPsApiManagementHostnameConfiguration
dePsApiManagementContext
. En su lugar, usePortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
yScmCustomHostnameConfiguration
del tipoPsApiManagementCustomHostNameConfiguration
. - Se ha quitado la propiedad
StaticIPs
de PsApiManagementContext. La propiedad se ha dividido enPublicIPAddresses
yPrivateIPAddresses
. - Se ha quitado la propiedad necesaria
Location
del cmdlet New-AzureApiManagementVirtualNetwork.
- Se han quitado las propiedades
Az.Billing (anteriormente AzureRM.Billing, AzureRM.Consumption y AzureRM.UsageAggregates)
- Se ha quitado el parámetro
InvoiceName
del 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
GetSkusWithAccountParamSetName
del 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
IdentityIds
de la propiedadIdentity
en los objetosPSVirtualMachine
yPSVirtualMachineScaleSet
. Los scripts ya no deberán usar el valor de este campo para tomar decisiones de procesamiento. - El tipo de la propiedad
InstanceView
del objetoPSVirtualMachineScaleSetVM
ha cambiado deVirtualMachineInstanceView
aVirtualMachineScaleSetVMInstanceView
. - Se han quitado las propiedades
AutoOSUpgradePolicy
yAutomaticOSUpgrade
de la propiedadUpgradePolicy
. - El tipo de la propiedad
Sku
del objetoPSSnapshotUpdate
ha cambiado deDiskSku
aSnapshotSku
. VmScaleSetVMParameterSet
se 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
GatewayName
ahora es obligatorio en el cmdletNew-AzDataFactoryEncryptValue
. - Se ha quitado el cmdlet
New-AzDataFactoryGatewayKey
. - Se ha quitado el parámetro
LinkedServiceName
del 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-AzDataLakeAnalyticsCatalogSecret
ySet-AzDataLakeAnalyticsCatalogSecret
.
Az.DataLakeStore (anteriormente AzureRM.DataLakeStore)
En los siguientes cmdlets, se ha cambiado del parámetro
Encoding
del tipoFileSystemCmdletProviderEncoding
aSystem.Text.Encoding
. Este cambio ha quitado los valores de codificaciónString
yOem
. 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
Tags
de los cmdletsNew-AzDataLakeStoreAccount
ySet-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
,FirewallAllowAzureIps
del objetoPSDataLakeStoreAccountBasic
. Los scripts que usen el valor dePSDatalakeStoreAccount
devuelto desdeGet-AzDataLakeStoreAccount
no deben hacer referencia a estas propiedades.
Az.KeyVault (anteriormente AzureRM.KeyVault)
- Se ha quitado la propiedad
PurgeDisabled
de los objetosPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
yPSKeyVaultSecretAttributes
. Los scripts ya no deben hacer referencia a la propiedadPurgeDisabled
para tomar decisiones de procesamiento.
Az.Media (anteriormente AzureRM.Media)
Se ha quitado el alias de propiedad en desuso
Tags
del 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
Categories
yTimegrains
en favor de los nombres en singular en el cmdletSet-AzDiagnosticSetting
. Los scripts que usen:Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Se deben cambiar a:
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (anteriormente AzureRM.Network)
- Se ha quitado el parámetro en desuso
ResourceId
del cmdletGet-AzServiceEndpointPolicyDefinition
. - Se ha quitado la propiedad en desuso
EnableVmProtection
del 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
, yByWorkspaceNameByKind
ha pasado a ser el conjunto de parámetros predeterminados.Los scripts que enumeren orígenes de datos mediante:
Get-AzureRmOperationalInsightsDataSource
Se 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
Encryption
del cmdletNew/Set-AzRecoveryServicesAsrPolicy
. - El parámetro
TargetStorageAccountName
ahora es obligatorio para las restauraciones de discos administrados en el cmdletRestore-AzRecoveryServicesBackupItem
. - Se han quitado los parámetros
StorageAccountName
yStorageAccountResourceGroupName
del cmdletRestore-AzRecoveryServicesBackupItem
. - Se ha quitado el parámetro
Name
del cmdletGet-AzRecoveryServicesBackupContainer
.
Az.Resources (anteriormente AzureRM.Resources)
Se ha quitado el parámetro
Sku
del cmdletNew/Set-AzPolicyAssignment
.Se ha quitado el parámetro
Password
de los cmdletsNew-AzADServicePrincipal
yNew-AzADSpCredential
. Las contraseñas se generan automáticamente. Los scripts que proporcionaban la contraseña:New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
Se 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
ServiceTypeHealthPolicies
de tipoApplicationHealthPolicy
. - Se ha quitado la propiedad
ApplicationHealthPolicies
de tipoClusterUpgradeDeltaHealthPolicy
. - Se ha quitado la propiedad
OverrideUserUpgradePolicy
de 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
State
yResourceId
del cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy
. - Se han quitado los cmdlets en desuso
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
yRemove-AzSqlServerAuditing
- Se ha quitado el parámetro en desuso
Current
del cmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy
. - Se ha quitado el parámetro en desuso
DatabaseName
del cmdletGet-AzSqlServerServiceObjective
. - Se ha quitado el parámetro en desuso
PrivilegedLogin
del 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
Location
ahora 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
,PSCloningInfo
yPSSite
.