Changements cassants pour Az 1.0.0
Ce document fournit des informations détaillées sur les changements intervenus entre AzureRM 6.x et le nouveau module Az version 1.x et ultérieure. La table des matières constitue un guide du parcours de migration complet, notamment en ce qui concerne les modifications spécifiques aux modules susceptibles d’affecter vos scripts.
Pour obtenir des conseils généraux sur la préparation d’une migration d’AzureRM vers Az, consultez Démarrer la migration d’AzureRM vers Az.
Important
Des changements cassants ont également été introduits entre Az 1.0.0 et Az 2.0.0. Après avoir suivi ce guide pour la mise à jour d’AzureRM vers Az, consultez les Changements cassants d’Az 2.0.0 pour savoir si vous devez apporter des modifications supplémentaires.
Sommaire
- Dernières modifications générales
- Modifications des préfixes des noms des applets de commande
- Modifications de nom de module
- Modules supprimés
- Windows PowerShell 5.1 et .NET 4.7.2
- Suppression temporaire de la connexion de l’utilisateur avec PSCredential
- Connexion via le code d’appareil par défaut au lieu de l’invite du navigateur web
- Changements cassants de module
- Az.ApiManagement (précédemment AzureRM.ApiManagement)
- Az.Billing (précédemment AzureRM.Billing, AzureRM.Consumption et AzureRM.UsageAggregates)
- Az.CognitiveServices (précédemment AzureRM.CognitiveServices)
- Az.Compute (précédemment AzureRM.Compute)
- Az.DataFactory (précédemment AzureRM.DataFactories et AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics (précédemment AzureRM.DataLakeAnalytics)
- Az.DataLakeStore (précédemment AzureRM.DataLakeStore)
- Az.KeyVault (précédemment AzureRM.KeyVault)
- Az.Media (précédemment AzureRM.Media)
- Az.Monitor (précédemment AzureRM.Insights)
- Az.Network (précédemment AzureRM.Network)
- Az.OperationalInsights (précédemment AzureRM.OperationalInsights)
- Az.RecoveryServices (précédemment AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup et AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources (précédemment AzureRM.Resources)
- Az.ServiceFabric (précédemment AzureRM.ServiceFabric)
- Az.Sql (précédemment AzureRM.Sql)
- Az.Storage (précédemment Azure.Storage et AzureRM.Storage)
- Az.Websites (précédemment AzureRM.Websites)
Dernières modifications générales
Cette section détaille les changements cassants généraux qui font partie de cette reconception du module Az.
Modifications de préfixe de nom de cmdlet
Dans le module AzureRM, les applets de commande utilisaient AzureRM
ou Azure
comme préfixes pour les noms. Az simplifie et normalise les noms des applets de commande : elles utilisent dorénavant toutes « Az » comme préfixe pour leurs noms. Par exemple :
Get-AzureRMVM
Get-AzureKeyVaultSecret
A été remplacé par :
Get-AzVM
Get-AzKeyVaultSecret
Pour simplifier la transition vers ces nouveaux noms des applets de commande, Az introduit deux nouvelles applets de commande : Enable-AzureRmAlias et Disable-AzureRmAlias. Enable-AzureRmAlias
crée des alias pour les anciens noms des applets de commande dans AzureRM qui établissent la correspondance avec leurs nouveaux noms dans Az. L’utilisation de l’argument -Scope
avec Enable-AzureRmAlias
vous permet de choisir où les alias sont activés.
Par exemple, le script suivant dans AzureRM :
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Peut être exécuté avec des modifications minimes à l’aide de Enable-AzureRmAlias
:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
L’exécution de Enable-AzureRmAlias -Scope CurrentUser
active les alias pour toutes les sessions PowerShell que vous ouvrez. Ainsi, après l’exécution de cette applet de commande, un script comme celui-ci ne nécessite aucune modification :
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Pour plus d’informations sur l’utilisation des alias des applets de commande, consultez les Informations de référence sur Enable-AzureRmAlias.
Quand vous êtes prêt à désactiver les alias, Disable-AzureRmAlias
supprime les alias créés. Pour plus d’informations, consultez les Informations de référence sur Disable-AzureRmAlias.
Important
Quand vous désactivez les alias, vérifiez qu’ils sont désactivés pour toutes les étendues où les alias étaient activés.
Modifications de nom de module
Les noms de module ont été modifiés de AzureRM.*
vers Az.*
, sauf pour les modules suivants :
Module AzureRM | Module 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 |
Les modifications dans les noms de module signifient que n’importe quel script qui utilise #Requires
ou Import-Module
pour charger des modules spécifiques devra être modifié pour utiliser le nouveau module à la place. Pour les modules où le suffixe des applets de commande n’a pas changé, cela signifie que, bien que le nom du module ait changé, le suffixe indiquant l’espace des opérations n’a pas changé.
Migration des instructions #Requires et Import-Module
Les scripts qui utilisent #Requires
ou Import-Module
pour déclarer une dépendance vis-à-vis de modules AzureRM doivent être mis à jour de façon à utiliser les nouveaux noms des modules. Par exemple :
#Requires -Module AzureRM.Compute
Doit être remplacé par :
#Requires -Module Az.Compute
Pour Import-Module
:
Import-Module -Name AzureRM.Compute
Doit être remplacé par :
Import-Module -Name Az.Compute
Migration des appels de cmdlet complets
Les scripts qui utilisent des appels d’applets de commande qualifiés par module, comme :
AzureRM.Compute\Get-AzureRmVM
doivent être modifiés de façon à utiliser les nouveaux noms des modules et des applets de commande :
Az.Compute\Get-AzVM
Migration des dépendances de manifeste de module
Pour les modules qui expriment des dépendances vis-à-vis de modules AzureRM via un fichier manifeste de module (.psd1), vous devez mettre à jour les noms des modules dans leur section RequiredModules
:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
Doit être remplacé par :
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
Modules supprimés
Les modules suivants ont été supprimés :
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
Les outils pour ces services ne sont plus activement pris en charge. Les clients sont encouragés à choisir d’autres services dès que possible.
Windows PowerShell 5.1 et .NET 4.7.2
L’utilisation d’Az avec PowerShell 5.1 pour Windows nécessite l’installation de .NET Framework 4.7.2. L’utilisation de PowerShell Core 6.x ou ultérieur ne nécessite pas le .NET Framework.
Suppression temporaire de la connexion de l’utilisateur à l’aide de PSCredential
En raison de modifications dans le flux d’authentification pour .NET Standard, nous supprimons temporairement la connexion utilisateur via PSCredential. Cette fonctionnalité sera réintroduite dans la version du 15/01/2019 pour PowerShell 5.1 pour Windows. Les détails sont abordés dans ce problème GitHub.
Connexion via le code d’appareil par défaut au lieu de l’invite du navigateur web
En raison de modifications dans le flux d’authentification pour .NET Standard, nous utilisons la connexion à l’appareil en tant que flux de connexion par défaut lors de la connexion interactive. La connexion basée sur un navigateur web sera réintroduite pour PowerShell 5.1 pour Windows comme option par défaut dans la version du 15/01/2019. À ce moment, les utilisateurs seront en mesure de se connecter à l’appareil à l’aide d’un paramètre de commutateur.
Changements cassants de module
Cette section détaille les changements cassants spécifiques à des applets de commande et des modules individuels.
Az.ApiManagement (précédemment AzureRM.ApiManagement)
- Les applets de commande suivantes ont été supprimées :
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Utilisez à la place l’applet de commande Set-AzApiManagement pour définir ces propriétés.
- Les propriétés suivantes ont été supprimées :
- Suppression des propriétés
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
etScmHostnameConfiguration
de typePsApiManagementHostnameConfiguration
dansPsApiManagementContext
. À la place, utilisezPortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
etScmCustomHostnameConfiguration
de typePsApiManagementCustomHostNameConfiguration
. - Suppression de la propriété
StaticIPs
dans PsApiManagementContext. La propriété a été divisée enPublicIPAddresses
etPrivateIPAddresses
. - Suppression de la propriété obligatoire
Location
dans la cmdlet New-AzureApiManagementVirtualNetwork.
- Suppression des propriétés
Az.Billing (précédemment AzureRM.Billing, AzureRM.Consumption et AzureRM.UsageAggregates)
- Le paramètre
InvoiceName
a été supprimé de la cmdletGet-AzConsumptionUsageDetail
. Les scripts doivent utiliser d’autres paramètres d’identité pour la facture.
Az.CognitiveServices (précédemment AzureRM.CognitiveServices)
- Suppression du jeu de paramètres
GetSkusWithAccountParamSetName
dans la cmdletGet-AzCognitiveServicesAccountSkus
. Vous devez obtenir des références (SKU) par type de compte et emplacement, au lieu d’utiliser ResourceGroupName et le nom du compte.
Az.Compute (précédemment AzureRM.Compute)
IdentityIds
sont supprimés de la propriétéIdentity
dans les objetsPSVirtualMachine
etPSVirtualMachineScaleSet
. Les scripts ne doivent plus utiliser la valeur de ce champ pour prendre des décisions de traitement.- Le type de la propriété
InstanceView
de l’objetPSVirtualMachineScaleSetVM
passe deVirtualMachineInstanceView
àVirtualMachineScaleSetVMInstanceView
. - Les propriétés
AutoOSUpgradePolicy
etAutomaticOSUpgrade
sont supprimées de la propriétéUpgradePolicy
. - Le type de la propriété
Sku
de l’objetPSSnapshotUpdate
passe deDiskSku
àSnapshotSku
. VmScaleSetVMParameterSet
est supprimé de la cmdletAdd-AzVMDataDisk
. Vous ne pouvez plus ajouter un disque de données individuellement à une machine virtuelle ScaleSet.
Az.DataFactory (précédemment AzureRM.DataFactories et AzureRM.DataFactoryV2)
- Le paramètre
GatewayName
est devenu obligatoire dans la cmdletNew-AzDataFactoryEncryptValue
. - Suppression de la cmdlet
New-AzDataFactoryGatewayKey
- Paramètre
LinkedServiceName
supprimé de la cmdletGet-AzDataFactoryV2ActivityRun
. Les scripts ne doivent plus utiliser la valeur de ce champ pour prendre des décisions de traitement.
Az.DataLakeAnalytics (précédemment AzureRM.DataLakeAnalytics)
- Suppression des cmdlets déconseillées :
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
, etSet-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore (précédemment AzureRM.DataLakeStore)
Dans les cmdlets suivantes, le paramètre
Encoding
est passé du typeFileSystemCmdletProviderEncoding
àSystem.Text.Encoding
. Cette modification supprime les valeurs de codageString
etOem
. Toutes les autres valeurs de codage préalables demeurent identiques.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Suppression de l’alias de propriété
Tags
déconseillé dans les cmdletsNew-AzDataLakeStoreAccount
etSet-AzDataLakeStoreAccount
.Tout script utilisant
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
Doit être remplacé par
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
Suppression des propriétés déconseillées
Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
,FirewallState
,FirewallRules
,VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
etFirewallAllowAzureIps
de l’objetPSDataLakeStoreAccountBasic
. Aucun script utilisant l’élémentPSDatalakeStoreAccount
renvoyé parGet-AzDataLakeStoreAccount
ne doit référencer ces propriétés.
Az.KeyVault (précédemment AzureRM.KeyVault)
- La propriété
PurgeDisabled
a été supprimée des objetsPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
etPSKeyVaultSecretAttributes
. Les scripts ne doivent plus faire référence à la propriétéPurgeDisabled
pour prendre des décisions de traitement.
Az.Media (précédemment AzureRM.Media)
Suppression de l’alias de propriété
Tags
déconseillé de la cmdletNew-AzMediaService
. Tout script utilisantNew-AzureRMMediaService -Tags @{TagName="TagValue"}
Doit être remplacé par
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (précédemment AzureRM.Insights)
Suppression des paramètres
Categories
etTimegrains
avec des noms pluriels en faveur des noms de paramètre au singulier dans la cmdletSet-AzDiagnosticSetting
. Tout script utilisantSet-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Doit être remplacé par
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (précédemment AzureRM.Network)
- Suppression du paramètre déconseillé
ResourceId
de la cmdletGet-AzServiceEndpointPolicyDefinition
- Suppression de la propriété déconseillée
EnableVmProtection
de l’objetPSVirtualNetwork
- Suppression de la cmdlet déconseillée
Set-AzVirtualNetworkGatewayVpnClientConfig
Les scripts ne doivent plus décider des traitements sur la base des valeurs de ces champs.
Az.OperationalInsights (précédemment AzureRM.OperationalInsights)
Le jeu de paramètres par défaut pour
Get-AzOperationalInsightsDataSource
est supprimé, etByWorkspaceNameByKind
est devenu le jeu de paramètres par défautTout script qui répertorie des sources de données utilisant
Get-AzureRmOperationalInsightsDataSource
Doit être modifié selon un type spécifique
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (précédemment AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup et AzureRM.RecoveryServices.SiteRecovery)
- Suppression du paramètre
Encryption
dans la cmdletNew/Set-AzRecoveryServicesAsrPolicy
- Le paramètre
TargetStorageAccountName
est maintenant obligatoire pour les restaurations de disque managé dans la cmdletRestore-AzRecoveryServicesBackupItem
. - Suppression des paramètres
StorageAccountName
etStorageAccountResourceGroupName
dans la cmdletRestore-AzRecoveryServicesBackupItem
- Suppression du paramètre
Name
dans la cmdletGet-AzRecoveryServicesBackupContainer
Az.Resources (précédemment AzureRM.Resources)
Suppression du paramètre
Sku
dans la cmdletNew/Set-AzPolicyAssignment
Suppression du paramètre
Password
dans les cmdletsNew-AzADServicePrincipal
etNew-AzADSpCredential
. Les mots de passe sont automatiquement générés. Tout script qui a fourni le mot de passe :New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
Doit être changé de façon à récupérer le mot de passe à partir de la sortie :
$credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 $secPassword = $credential.Secret
Az.ServiceFabric (précédemment AzureRM.ServiceFabric)
- Les types de retour de cmdlet suivants ont été modifiés :
- La propriété
ServiceTypeHealthPolicies
de typeApplicationHealthPolicy
a été supprimée. - La propriété
ApplicationHealthPolicies
de typeClusterUpgradeDeltaHealthPolicy
a été supprimée. - La propriété
OverrideUserUpgradePolicy
de typeClusterUpgradePolicy
a été supprimée. - Ces modifications influent sur les cmdlets suivantes :
- 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
- La propriété
Az.Sql (précédemment AzureRM.Sql)
- Suppression des paramètres
State
etResourceId
dans la cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Suppression des cmdlets déconseillées :
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
,Remove-AzSqlServerAuditing
- Suppression du paramètre déconseillé
Current
de la cmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Suppression du paramètre déconseillé
DatabaseName
de la cmdletGet-AzSqlServerServiceObjective
- Suppression du paramètre déconseillé
PrivilegedLogin
de la cmdletSet-AzSqlDatabaseDataMaskingPolicy
Az.Storage (précédemment Azure.Storage et AzureRM.Storage)
- Pour prendre en charge la création d’un contexte de stockage Oauth avec uniquement le nom du compte de stockage, le jeu de paramètres par défaut a été remplacé par
OAuthParameterSet
.- Exemple :
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Exemple :
- Le paramètre
Location
est devenu obligatoire dans la cmdletGet-AzStorageUsage
. - Les méthodes d’API de stockage utilisent maintenant le modèle asynchrone basé sur des tâches (TAP), au lieu d’appels d’API synchrones. Les exemples suivants montrent les nouvelles commandes asynchrones :
Instantané d’objet 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
Partager l’instantané
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
Annuler la suppression d’un objet blob supprimé de manière réversible
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()
Définir un niveau d’objet 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 (précédemment AzureRM.Websites)
- Suppression des propriétés déconseillées des objets
PSAppServicePlan
,PSCertificate
,PSCloningInfo
etPSSite
.