Condividi tramite


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 di rilievo generali che fanno parte della riprogettazione del modulo Az.

Modifiche al prefisso dei nomi dei cmdlet

Nel modulo AzureRM i cmdlet usati AzureRM o Azure come prefisso 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 eseguono il mapping ai nomi dei cmdlet Az più recenti. 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 riferimentoEnable-AzureRmAlias.

Quando si è pronti per disabilitare gli alias, Disable-AzureRmAlias rimuove gli alias creati. Per informazioni dettagliate, vedere le informazioni di riferimentoDisable-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 non è stato modificato, significa che, anche se il nome del modulo è stato modificato, il suffisso che indica che lo spazio dell'operazione non è stato modificato.

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

Deve essere modificato in:

#Requires -Module Az.Compute

Per Import-Module:

Import-Module -Name AzureRM.Compute

Deve essere modificato in:

Import-Module -Name Az.Compute

Migrazione delle chiamate ai cmdlet di Fully-Qualified

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 delle dipendenze del manifesto del modulo

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'account di accesso utente tramite 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 1/15/2019 per PowerShell 5.1 per Windows. Questo argomento viene descritto in dettaglio in questo problema di GitHub.

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

A causa delle modifiche apportate al flusso di autenticazione per .NET Standard, viene usato l'account di accesso del dispositivo come flusso di accesso predefinito durante l'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 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)

  • Rimozione del set di GetSkusWithAccountParamSetName parametri dal Get-AzCognitiveServicesAccountSkus cmdlet. È necessario ottenere sku in base al tipo di account e alla posizione, anziché usare ResourceGroupName e Nome account.

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 le proprietà e AutomaticOSUpgrade vengono rimosse dalla UpgradePolicy proprietà
  • 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 rimosso New-AzDataFactoryGatewayKey
  • Il parametro rimosso LinkedServiceName dai Get-AzDataFactoryV2ActivityRun cmdlet Scripts non deve più usare 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
    • Get-AzureRmDataLakeStoreItemContent
  • Rimozione dell'alias di proprietà deprecato Tags dai New-AzDataLakeStoreAccount cmdlet e Set-AzDataLakeStoreAccount

    Script che usano

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

    Deve essere modificato in

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Rimosse le proprietà Identitydeprecate , , EncryptionStateEncryptionProvisioningState, EncryptionConfig, , FirewallStateFirewallRulesVirtualNetworkRulesTrustedIdProviderStateTrustedIdProvidersDefaultGroupNewTier, CurrentTierdall'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 PurgeDisabled proprietà è stata rimossa dagli PSKeyVaultKeyAttributesscript degli oggetti , PSKeyVaultKeyIdentityIteme PSKeyVaultSecretAttributes non deve più fare riferimento alla PurgeDisabled proprietà per prendere decisioni di elaborazione.

Az.Media (in precedenza AzureRM.Media)

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

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

    Deve essere modificato in

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

Az.Monitor (in precedenza AzureRM.Insights)

  • Rimozione dei nomi Categories plurali e Timegrains del parametro a favore dei nomi di parametri singolari dagli Set-AzDiagnosticSetting script del cmdlet tramite

    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)

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

Az.Resources (in precedenza AzureRM.Resources)

  • Parametro rimosso Sku dal New/Set-AzPolicyAssignment cmdlet

  • Il parametro rimosso Password da New-AzADServicePrincipal e New-AzADSpCredential i cmdlet Password vengono generati automaticamente, gli script che hanno fornito 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 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)

  • Rimozione di State parametri e ResourceId dal Set-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet
  • 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:

Blob Snapshot

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

Snapshot di condivisione

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 leggero

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