Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo documento fornisce informazioni dettagliate sulle modifiche tra AzureRM 6.x e il nuovo modulo Az, versione 1.x e successive. Il sommario include tutti i passaggi di un percorso di migrazione completo, incluse le modifiche specifiche dei singoli moduli che potrebbero influire sugli script.
Per consigli generali su come iniziare a eseguire una migrazione da AzureRM ad Az, vedere Avviare la migrazione da AzureRM ad Az.
Importante
Sono state apportate modifiche di rilievo anche tra le versioni 1.0.0 e 2.0.0 di Az. Dopo aver seguito le indicazioni di questa guida per eseguire l'aggiornamento da AzureRM ad Az, vedere l'elenco delle modifiche di rilievo di Az 2.0.0 per sapere se sono necessarie ulteriori modifiche.
Sommario
- Cambiamenti generali significativi
- Modifiche del modulo che causano interruzioni
- Az.ApiManagement (in precedenza AzureRM.ApiManagement)
- Az.Billing (in precedenza AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)
- Az.CognitiveServices (in precedenza AzureRM.CognitiveServices)
- Az.Compute (in precedenza AzureRM.Compute)
- Az.DataFactory (in precedenza AzureRM.DataFactories e AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics (in precedenza AzureRM.DataLakeAnalytics)
- Az.DataLakeStore (in precedenza AzureRM.DataLakeStore)
- Az.KeyVault (in precedenza AzureRM.KeyVault)
- Az.Media (in precedenza AzureRM.Media)
- Az.Monitor (in precedenza AzureRM.Insights)
- Az.Network (in precedenza AzureRM.Network)
- Az.OperationalInsights (in precedenza AzureRM.OperationalInsights)
- Az.RecoveryServices (in precedenza AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup e AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources (in precedenza AzureRM.Resources)
- Az.ServiceFabric (in precedenza AzureRM.ServiceFabric)
- Az.Sql (in precedenza AzureRM.Sql)
- Az.Storage (in precedenza Azure.Storage e AzureRM.Storage)
- Az.Websites (in precedenza AzureRM.Websites)
Modifiche sostanziali generali
Questa sezione descrive in dettaglio le modifiche sostanziali che fanno parte della riprogettazione del modulo Az.
Modifiche al prefisso dei nomi cmdlet
Nel modulo AzureRM come prefisso dei nomi dei cmdlet si usava AzureRM
o Azure
. Az semplifica e normalizza i nomi dei cmdlet, in modo che tutti i cmdlet usino 'Az' come prefisso sostantivo del cmdlet. Per esempio:
Get-AzureRMVM
Get-AzureKeyVaultSecret
È stato modificato in:
Get-AzVM
Get-AzKeyVaultSecret
Per semplificare la transizione a questi nuovi nomi dei cmdlet, Az introduce due nuovi cmdlet, ovvero Enable-AzureRmAlias e Disable-AzureRmAlias.
Enable-AzureRmAlias
crea alias per i nomi dei cmdlet precedenti in AzureRM, associati ai nuovi nomi dei cmdlet Az. L'uso dell'argomento -Scope
con Enable-AzureRmAlias
consente di scegliere dove sono abilitati gli alias.
Ad esempio, lo script seguente in AzureRM:
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Può essere eseguito con modifiche minime usando Enable-AzureRmAlias
:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
L'esecuzione di Enable-AzureRmAlias -Scope CurrentUser
abilita gli alias per tutte le sessioni di PowerShell che vengono aperte, in modo che dopo l'esecuzione di questo cmdlet non sarà necessario modificare uno script simile al seguente:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Per informazioni dettagliate sull'utilizzo dei cmdlet alias, vedere la guida di riferimento per Enable-AzureRmAlias.
Quando si è pronti per disabilitare gli alias, Disable-AzureRmAlias
rimuove gli alias creati. Per informazioni dettagliate, vedere il riferimento Disable-AzureRmAlias.
Importante
Quando si disabilitano gli alias, assicurarsi che vengano disabilitati per tutti gli ambiti in cui erano abilitati.
Modifiche ai nomi dei moduli
I nomi dei moduli sono stati modificati da AzureRM.*
a Az.*
, ad eccezione dei moduli seguenti:
Modulo AzureRM | Modulo Az |
---|---|
Azure.Storage | Az.Storage |
Azure.AnalysisServices (servizio di analisi) | Az.AnalysisServices |
AzureRM.Profile | Account di Azure |
AzureRM.Insights | Az.Monitor |
AzureRM.DataFactories | Az.DataFactory |
AzureRM.DataFactoryV2 | Az.DataFactory |
AzureRM.RecoveryServices.Backup (Servizi di Ripristino Backup di AzureRM) | Az.ServiziDiRecupero |
AzureRM.RecoveryServices.SiteRecovery | Az.ServiziDiRecupero |
AzureRM.Tags | Az.Resources |
AzureRM.MachineLearningCompute | Az.MachineLearning |
AzureRM.UsageAggregates | Az.Billing |
AzureRM.Consumption | Az.Billing |
Le modifiche apportate ai nomi dei moduli indicano che qualsiasi script che usa #Requires
o Import-Module
per caricare moduli specifici dovrà essere modificato per usare invece il nuovo modulo. Per i moduli in cui il suffisso del cmdlet non è stato modificato, ciò significa che, anche se il nome del modulo è stato modificato, il suffisso che indica che lo spazio dell'operazione è non.
Migrazione delle istruzioni #Requires e delle Import-Module
Gli script che usano #Requires
o Import-Module
per dichiarare una dipendenza dai moduli AzureRM devono essere aggiornati per usare i nuovi nomi di modulo. Per esempio:
#Requires -Module AzureRM.Compute
Devono essere modificati in:
#Requires -Module Az.Compute
Per Import-Module
:
Import-Module -Name AzureRM.Compute
Devono essere modificati in:
Import-Module -Name Az.Compute
Migrazione delle invocazioni completamente qualificate dei cmdlet
Gli script che utilizzano chiamate di cmdlet qualificate dal modulo, come:
AzureRM.Compute\Get-AzureRmVM
Devono essere modificati in modo che usino i nuovi nomi dei moduli e dei cmdlet:
Az.Compute\Get-AzVM
Migrazione delle dipendenze dei manifesti dei moduli
I moduli che esprimono le dipendenze dai moduli AzureRM tramite un file manifesto del modulo (con estensione psd1) dovranno aggiornare i nomi dei moduli nella relativa sezione RequiredModules
:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
Devono essere modificati in:
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
Moduli eliminati
Sono stati rimossi i moduli seguenti:
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
Gli strumenti per questi servizi non sono più supportati attivamente. I clienti sono invitati a passare a servizi alternativi non appena è conveniente.
Windows PowerShell 5.1 e .NET 4.7.2
L'uso di Az con PowerShell 5.1 per Windows richiede l'installazione di .NET Framework 4.7.2. L'uso di PowerShell Core 6.x o versione successiva non richiede .NET Framework.
Rimozione temporanea dell'accesso utente con PSCredential
A causa delle modifiche nel flusso di autenticazione per .NET Standard verrà temporaneamente rimosso l'accesso utente tramite PSCredential. Questa funzionalità verrà introdotta nuovamente nella versione 1/15/2019 per PowerShell 5.1 per Windows. Questa modifica è descritta in dettaglio in questo problema di GitHub.
Accesso al codice predefinito del dispositivo invece della richiesta del web browser
A causa delle modifiche apportate al flusso di autenticazione per .NET Standard, viene utilizzato il login del dispositivo come metodo di accesso predefinito nell'accesso interattivo. L'accesso basato sul Web browser verrà introdotto nuovamente per PowerShell 5.1 per Windows come impostazione predefinita nella versione 1/15/2019. In quel momento, gli utenti potranno scegliere l'accesso del dispositivo usando un parametro Switch.
Modifiche al modulo che interrompono la compatibilità
Questa sezione illustra in dettaglio le modifiche sostanziali per singoli moduli e cmdlet.
Az.ApiManagement (in precedenza AzureRM.ApiManagement)
- Sono stati rimossi i cmdlet seguenti:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Aggiorna il Deployment di AzureRmApiManagement
- Importa un certificato di nome host in AzureRmApiManagement con il comando "Import-AzureRmApiManagementHostnameCertificate".
- Utilizzare il cmdlet Set-AzApiManagement per impostare queste proprietà invece.
- Rimosse le proprietà seguenti:
- Sono state rimosse le proprietà
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
eScmHostnameConfiguration
di tipoPsApiManagementHostnameConfiguration
daPsApiManagementContext
. Usare invecePortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
eScmCustomHostnameConfiguration
di tipoPsApiManagementCustomHostNameConfiguration
. - È stata rimossa la proprietà
StaticIPs
da PsApiManagementContext. La proprietà è stata suddivisa inPublicIPAddresses
ePrivateIPAddresses
. - È stata rimossa la proprietà obbligatoria
Location
dal cmdlet New-AzureApiManagementVirtualNetwork.
- Sono state rimosse le proprietà
Az.Billing (in precedenza AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)
- Il parametro
InvoiceName
è stato rimosso dal cmdletGet-AzConsumptionUsageDetail
. Gli script dovranno usare altri parametri di identità per la fatturazione.
Az.CognitiveServices (in precedenza AzureRM.CognitiveServices)
- È stato rimosso il set di parametri
GetSkusWithAccountParamSetName
dal cmdletGet-AzCognitiveServicesAccountSkus
. È necessario ottenere gli SKU per tipo di account e posizione, anziché usare ResourceGroupName e nome account.
Az.Compute (in precedenza AzureRM.Compute)
-
IdentityIds
è stato rimosso dalla proprietàIdentity
negli oggettiPSVirtualMachine
ePSVirtualMachineScaleSet
. Gli script non devono più usare il valore di questo campo per le decisioni di elaborazione. - Il tipo della proprietà
InstanceView
dell'oggettoPSVirtualMachineScaleSetVM
è stato modificato daVirtualMachineInstanceView
aVirtualMachineScaleSetVMInstanceView
- Le proprietà
AutoOSUpgradePolicy
eAutomaticOSUpgrade
sono state rimosse dalla proprietàUpgradePolicy
- Il tipo della proprietà
Sku
nell'oggettoPSSnapshotUpdate
è stato modificato daDiskSku
aSnapshotSku
-
VmScaleSetVMParameterSet
viene rimosso dal cmdletAdd-AzVMDataDisk
, non è più possibile aggiungere un disco dati singolarmente a una macchina virtuale ScaleSet.
Az.DataFactory (in precedenza AzureRM.DataFactories e AzureRM.DataFactoryV2)
- Il parametro
GatewayName
è diventato obbligatorio nel cmdletNew-AzDataFactoryEncryptValue
- È stato rimosso il cmdlet
New-AzDataFactoryGatewayKey
- È stato rimosso il parametro
LinkedServiceName
dal cmdletGet-AzDataFactoryV2ActivityRun
. Gli script non devono più usare il valore di questo campo per le decisioni di elaborazione.
Az.DataLakeAnalytics (in precedenza AzureRM.DataLakeAnalytics)
- Sono stati rimossi i cmdlet deprecati:
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
eSet-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore (in precedenza AzureRM.DataLakeStore)
Il tipo del parametro
Encoding
dei cmdlet seguenti è stato modificato daFileSystemCmdletProviderEncoding
aSystem.Text.Encoding
. Questa modifica rimuove i valori di codificaString
eOem
. Tutti gli altri valori di codifica precedenti rimangono.- New-AzureRmDataLakeStoreItem (Crea un nuovo elemento in Azure Data Lake Store)
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
È stato rimosso l'alias della proprietà deprecata
Tags
dai cmdletNew-AzDataLakeStoreAccount
eSet-AzDataLakeStoreAccount
I script che usano
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
Questo deve essere modificato in
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
Sono state rimosse le proprietà deprecate
Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
,FirewallState
,FirewallRules
,VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
,FirewallAllowAzureIps
dall'oggettoPSDataLakeStoreAccountBasic
. Tutti gli script che usanoPSDatalakeStoreAccount
restituito daGet-AzDataLakeStoreAccount
non devono fare riferimento a queste proprietà.
Az.KeyVault (in precedenza AzureRM.KeyVault)
- La proprietà
PurgeDisabled
è stata rimossa dagli oggettiPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
ePSKeyVaultSecretAttributes
. Gli script non dovrebbero più fare riferimento alla proprietàPurgeDisabled
per prendere decisioni di elaborazione.
Az.Media (in precedenza AzureRM.Media)
È stato rimosso l'alias della proprietà deprecata
Tags
dal cmdletNew-AzMediaService
negli script che lo utilizzano.New-AzureRMMediaService -Tags @{TagName="TagValue"}
Questo deve essere modificato in
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (in precedenza AzureRM.Insights)
Rimossi i nomi di parametri plurali
Categories
eTimegrains
a favore dei nomi di parametri singolari nei script di cmdletSet-AzDiagnosticSetting
usandoSet-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Questo deve essere modificato in
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (in precedenza AzureRM.Network)
- È stato rimosso il parametro
ResourceId
deprecato dal cmdletGet-AzServiceEndpointPolicyDefinition
- Rimozione della proprietà
EnableVmProtection
deprecata dall'oggettoPSVirtualNetwork
- Rimosso il cmdlet
Set-AzVirtualNetworkGatewayVpnClientConfig
deprecato
Gli script non devono più prendere decisioni di elaborazione in base ai valori di questi campi.
Az.OperationalInsights (in precedenza AzureRM.OperationalInsights)
Il set di parametri predefinito per
Get-AzOperationalInsightsDataSource
è stato rimosso eByWorkspaceNameByKind
è diventato il set di parametri predefinitoScript che elencavano le sorgenti dati usando
Get-AzureRmOperationalInsightsDataSource
Deve essere modificato per specificare un tipo
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (in precedenza AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup e AzureRM.RecoveryServices.SiteRecovery)
- È stato rimosso il parametro
Encryption
dal cmdletNew/Set-AzRecoveryServicesAsrPolicy
- Il parametro
TargetStorageAccountName
è ora obbligatorio per il ripristino dei dischi gestiti nel cmdletRestore-AzRecoveryServicesBackupItem
- Sono stati rimossi i parametri
StorageAccountName
eStorageAccountResourceGroupName
nel cmdletRestore-AzRecoveryServicesBackupItem
- È stato rimosso il parametro
Name
nel cmdletGet-AzRecoveryServicesBackupContainer
Az.Resources (in precedenza AzureRM.Resources)
È stato rimosso il parametro
Sku
dal cmdletNew/Set-AzPolicyAssignment
È stato rimosso il parametro
Password
dai cmdletNew-AzADServicePrincipal
eNew-AzADSpCredential
. Le password vengono generate automaticamente; gli script che erano utilizzati per fornire la password:New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -Password $secPassword
Deve essere modificato per recuperare la password dall'output:
$credential = New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 $secPassword = $credential.Secret
Az.ServiceFabric (in precedenza AzureRM.ServiceFabric)
- Sono stati modificati i tipi restituiti di cmdlet seguenti:
- La proprietà
ServiceTypeHealthPolicies
di tipoApplicationHealthPolicy
è stata rimossa. - La proprietà
ApplicationHealthPolicies
di tipoClusterUpgradeDeltaHealthPolicy
è stata rimossa. - La proprietà
OverrideUserUpgradePolicy
di tipoClusterUpgradePolicy
è stata rimossa. - Queste modifiche interessano i cmdlet seguenti:
- Add-AzServiceFabricClientCertificate
- Aggiungi-AzServiceFabricClusterCertificate
- Add-AzServiceFabricNode
- Add-AzServiceFabricNodeType
- Get-AzServiceFabricCluster
- Remove-AzServiceFabricClientCertificate (Rimuove un certificato client AzServiceFabric)
- Remove-AzServiceFabricClusterCertificate (comando per rimuovere un certificato cluster di Service Fabric in Azure)
- Remove-AzServiceFabricNode
- Remove-AzServiceFabricNodeType
- Remove-AzServiceFabricSetting
- Set-AzServiceFabricSetting
- Set-AzServiceFabricUpgradeType
- Update-AzServiceFabricDurability
- Update-AzServiceFabricReliability
- La proprietà
Az.Sql (in precedenza AzureRM.Sql)
- Sono stati rimossi i parametri
State
eResourceId
dal cmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Sono stati rimossi i cmdlet deprecati:
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
,Remove-AzSqlServerAuditing
- Rimozione del parametro
Current
deprecato dalGet-AzSqlDatabaseBackupLongTermRetentionPolicy
cmdlet - Rimozione del parametro
DatabaseName
deprecato dalGet-AzSqlServerServiceObjective
cmdlet - Rimozione del parametro
PrivilegedLogin
deprecato dalSet-AzSqlDatabaseDataMaskingPolicy
cmdlet
Az.Storage (in precedenza Azure.Storage e AzureRM.Storage)
- Per supportare la creazione di un contesto di archiviazione Oauth con solo il nome dell'account di archiviazione, il set di parametri predefinito è stato modificato in
OAuthParameterSet
- Esempio:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Esempio:
- Il parametro
Location
è diventato obbligatorio nel cmdletGet-AzStorageUsage
- I metodi dell'API di archiviazione usano ora il Modello asincrono basato su attività (TAP), invece delle chiamate API sincrone. Gli esempi seguenti illustrano i nuovi comandi asincroni:
Snapshot del 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
Condividi Snapshot
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
Annullare l'eliminazione del BLOB eliminato in modo reversibile
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()
Imposta il livello 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 (in precedenza AzureRM.Websites)
- Sono state rimosse le proprietà deprecate dagli oggetti
PSAppServicePlan
,PSCertificate
,PSCloningInfo
ePSSite