Modifiche di rilievo per Az 1.0.0

Questo documento fornisce informazioni dettagliate sulle modifiche tra AzureRM 6.x e il nuovo modulo Az, versione 1.x e successive. Il sommario consentirà di eseguire un percorso di migrazione completo, incluse le modifiche specifiche del modulo che possono 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 Az 1.0.0 e Az 2.0.0. Dopo aver seguito questa guida per l'aggiornamento da AzureRM ad Az, vedere le modifiche di rilievo di Az 2.0.0 per scoprire se è necessario apportare altre modifiche.

Sommario

Modifiche di rilievo generali

Questa sezione descrive in dettaglio le modifiche generali importanti che fanno parte della riprogettazione del modulo Az.

Modifiche ai prefissi dei nomi dei Cmdlet

Nel modulo AzureRM, i cmdlet utilizzano AzureRM o Azure come prefisso del sostantivo. 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 di cmdlet, Az introduce due nuovi cmdlet, Enable-AzureRmAlias e Disable-AzureRmAlias. Enable-AzureRmAlias crea alias per i nomi dei cmdlet precedenti in AzureRM che corrispondono ai nomi più recenti 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 Enable-AzureRmAlias -Scope CurrentUser abiliterà gli alias per tutte le sessioni di PowerShell aperte, in modo che dopo l'esecuzione di questo cmdlet uno script simile al seguente non debba essere modificato:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Per informazioni dettagliate sull'utilizzo dei cmdlet alias, vedere il Riferimento 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 siano disabilitati per tutti gli ambiti con alias abilitati.

Modifiche al nome del modulo

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 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

Le modifiche nei nomi dei moduli indicano che qualsiasi script che usa #Requires o Import-Module per caricare moduli specifici dovrà essere modificato per usare il nuovo modulo. Per i moduli in cui il suffisso del cmdlet è rimasto invariato, ciò significa che, nonostante il cambiamento del nome del modulo, il suffisso relativo allo spazio operativo non è cambiato.

Migrazione di istruzioni #Requires e 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 dei cmdlet completamente qualificati

Script che usano chiamate di cmdlet qualificate dal modulo, ad esempio:

AzureRM.Compute\Get-AzureRmVM

È necessario modificare per usare il nuovo modulo e i nomi dei cmdlet:

Az.Compute\Get-AzVM

Migrazione del manifesto del modulo delle dipendenze

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 RequiredModules sezione:

RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})

Deve essere modificato in:

RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})

Moduli rimossi

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 utilizzando PSCredential

A causa delle modifiche apportate al flusso di autenticazione per .NET Standard, l'accesso utente viene temporaneamente rimosso tramite PSCredential. Questa funzionalità verrà introdotta nuovamente nella versione 15/15/2019 per PowerShell 5.1 per Windows. Questo argomento è illustrato in dettaglio in questo problema GitHub.

Accesso predefinito al codice del dispositivo anziché al prompt del Web browser

A causa delle modifiche al flusso di autenticazione per .NET Standard, viene usato l'accesso tramite dispositivo come flusso di login predefinito durante l'accesso interattivo. Il login basato su browser Web verrà reintrodotto per PowerShell 5.1 per Windows come impostazione predefinita nella release del 15/01/2019. In quel momento, gli utenti potranno scegliere l'accesso del dispositivo usando un parametro Switch.

Modifiche che causano un'interruzione del modulo

In questa sezione vengono fornite informazioni dettagliate sulle modifiche di rilievo specifiche per singoli moduli e cmdlet.

Az.ApiManagement (in precedenza AzureRM.ApiManagement)

  • Sono stati rimossi i cmdlet seguenti:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Usare invece il cmdlet Set-AzApiManagement per impostare queste proprietà
  • Rimosse le proprietà seguenti:
    • Rimozione della proprietà PortalHostnameConfiguration, ProxyHostnameConfigurationManagementHostnameConfiguration e ScmHostnameConfiguration di tipo PsApiManagementHostnameConfiguration da PsApiManagementContext. Usare invece PortalCustomHostnameConfiguration, ProxyCustomHostnameConfigurationManagementCustomHostnameConfiguration e ScmCustomHostnameConfiguration di tipo PsApiManagementCustomHostNameConfiguration.
    • Rimozione della proprietà StaticIPs da PsApiManagementContext. La proprietà è stata suddivisa in PublicIPAddresses e PrivateIPAddresses.
    • Rimozione della proprietà Location obbligatoria dal cmdlet New-AzureApiManagementVirtualNetwork.

Az.Billing (in precedenza AzureRM.Billing, AzureRM.Consumption e AzureRM.UsageAggregates)

  • Il InvoiceName parametro è stato rimosso dal Get-AzConsumptionUsageDetail cmdlet . Gli script dovranno usare altri parametri identity per la fattura.

Az.CognitiveServices (in precedenza AzureRM.CognitiveServices)

  • È stato rimosso il set di parametri GetSkusWithAccountParamSetName dal cmdlet Get-AzCognitiveServicesAccountSkus. È necessario ottenere gli SKU in base al tipo di account e alla posizione, anziché usare ResourceGroupName e Account Name.

Az.Compute (in precedenza AzureRM.Compute)

  • IdentityIds vengono rimossi dalla Identity proprietà in PSVirtualMachine e PSVirtualMachineScaleSet gli oggetti Script non devono più utilizzare il valore di questo campo per prendere decisioni di elaborazione.
  • Il tipo di InstanceView proprietà dell'oggetto PSVirtualMachineScaleSetVM viene modificato da VirtualMachineInstanceView a VirtualMachineScaleSetVMInstanceView
  • AutoOSUpgradePolicy e AutomaticOSUpgrade proprietà vengono rimosse dalla proprietà UpgradePolicy
  • Il tipo di Sku proprietà nell'oggetto PSSnapshotUpdate viene modificato da DiskSku a SnapshotSku
  • VmScaleSetVMParameterSet viene rimosso dal Add-AzVMDataDisk cmdlet, non è più possibile aggiungere un disco dati singolarmente a una macchina virtuale ScaleSet.

Az.DataFactory (in precedenza AzureRM.DataFactories e AzureRM.DataFactoryV2)

  • Il GatewayName parametro è diventato obbligatorio nel New-AzDataFactoryEncryptValue cmdlet
  • Cmdlet New-AzDataFactoryGatewayKey rimosso
  • Il parametro LinkedServiceName è stato rimosso dal cmdlet Get-AzDataFactoryV2ActivityRun. Gli script non dovrebbero più utilizzare il valore di questo campo per prendere decisioni di elaborazione.

Az.DataLakeAnalytics (in precedenza AzureRM.DataLakeAnalytics)

  • Rimozione dei cmdlet deprecati: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecrete Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (in precedenza AzureRM.DataLakeStore)

  • I cmdlet seguenti hanno modificato il Encoding parametro dal tipo FileSystemCmdletProviderEncoding a System.Text.Encoding. Questa modifica rimuove i valori String di codifica e Oem. Tutti gli altri valori di codifica precedenti rimangono.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent (Aggiunge contenuto a un elemento di Azure Data Lake Store)
    • Get-AzureRmDataLakeStoreItemContent
  • Rimozione dell'alias di proprietà deprecato Tags dai New-AzDataLakeStoreAccount cmdlet e Set-AzDataLakeStoreAccount

    Gli script che utilizzano

    New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
    

    Deve essere modificato in

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Rimosse le proprietà deprecate Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier dall'oggetto FirewallAllowAzureIpsPSDataLakeStoreAccountBasic. Qualsiasi script che utilizza l'oggetto PSDatalakeStoreAccount restituito da Get-AzDataLakeStoreAccount non deve fare riferimento a queste proprietà.

Az.KeyVault (in precedenza AzureRM.KeyVault)

  • La proprietà PurgeDisabled è stata rimossa dagli oggetti PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem e PSKeyVaultSecretAttributes. Gli script non devono più fare riferimento alla proprietà PurgeDisabled per prendere decisioni di elaborazione.

Az.Media (in precedenza AzureRM.Media)

  • Rimuovere l'alias della proprietà deprecato Tags dagli script del cmdlet New-AzMediaService usando

    New-AzureRMMediaService -Tags @{TagName="TagValue"}
    

    Deve essere modificato in

    New-AzMediaService -Tag @{TagName="TagValue"}
    

Az.Monitor (in precedenza AzureRM.Insights)

  • Rimossi i nomi di parametri plurali Categories e Timegrains a favore dei nomi di parametri singolari dagli script del cmdlet Set-AzDiagnosticSetting.

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Deve essere modificato in

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (in precedenza AzureRM.Network)

  • Rimozione del parametro deprecato ResourceId dal Get-AzServiceEndpointPolicyDefinition cmdlet
  • Rimozione della proprietà deprecata EnableVmProtection dall'oggetto PSVirtualNetwork
  • Cmdlet deprecato rimosso Set-AzVirtualNetworkGatewayVpnClientConfig

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 viene rimosso e ByWorkspaceNameByKind diventa il set di parametri predefinito

    Script che elencano le origini 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)

  • Rimosso il parametro Encryption dal cmdlet New/Set-AzRecoveryServicesAsrPolicy
  • TargetStorageAccountName il parametro è ora obbligatorio per i ripristini del disco gestito nel Restore-AzRecoveryServicesBackupItem cmdlet
  • Rimossi i parametri StorageAccountName e StorageAccountResourceGroupName del cmdlet Restore-AzRecoveryServicesBackupItem
  • Parametro rimosso Namenel Get-AzRecoveryServicesBackupContainer cmdlet

Az.Resources (in precedenza AzureRM.Resources)

  • Rimosso il parametro Sku dal cmdlet New/Set-AzPolicyAssignment

  • Il parametro Password è stato rimosso dai cmdlet New-AzADServicePrincipal e New-AzADSpCredential. Le password vengono generate automaticamente, mentre gli script fornivano la password:

    New-AzAdSpCredential -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -Password $secPassword
    

    Deve essere modificato per recuperare la password dall'output:

    $credential = New-AzAdSpCredential -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    $secPassword = $credential.Secret
    

Az.ServiceFabric (in precedenza AzureRM.ServiceFabric)

  • Sono stati modificati i tipi restituiti di cmdlet seguenti:
    • La proprietà ServiceTypeHealthPolicies di tipo ApplicationHealthPolicy è stata rimossa.
    • La proprietà ApplicationHealthPolicies di tipo ClusterUpgradeDeltaHealthPolicy è stata rimossa.
    • La proprietà OverrideUserUpgradePolicy di tipo ClusterUpgradePolicy è stata rimossa.
    • Queste modifiche influiscono sui cmdlet seguenti:
      • 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

Az.Sql (in precedenza AzureRM.Sql)

  • Rimossi i parametri State e ResourceId dal cmdlet Set-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Rimozione dei cmdlet deprecati: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Rimozione del parametro Current deprecato dal Get-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet
  • Rimozione del parametro DatabaseName deprecato dal Get-AzSqlServerServiceObjective cmdlet
  • Rimozione del parametro PrivilegedLogin deprecato dal Set-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
  • Il Location parametro è diventato obbligatorio nel Get-AzStorageUsage cmdlet
  • I metodi dell'API di archiviazione ora usano il modello asincrono basato su attività anziché le chiamate API sincrone. Gli esempi seguenti illustrano i nuovi comandi asincroni:

Istantanea di 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 istantanea

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

Ripristinare un 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()

Impostare 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)

  • Rimozione delle proprietà deprecate dagli PSAppServicePlanoggetti , PSCertificate, PSCloningInfoe PSSite