Perubahan yang dapat menyebabkan gangguan untuk Az 1.0.0

Dokumen ini memberikan informasi detail tentang perubahan antara AzureRM 6.x dan modul Az baru, versi 1.x dan yang lebih baru. Daftar isi akan membantu memandu Anda menyelesaikan jalur migrasi penuh, termasuk perubahan khusus modul yang dapat memengaruhi skrip Anda.

Untuk saran umum tentang memulai dengan migrasi dari AzureRM ke Az, lihat Memulai migrasi dari AzureRM ke Az.

Penting

Telah terdapat pula perubahan pemecahan antara Az 1.0.0 dan Az 2.0.0. Setelah mengikuti panduan ini untuk memperbarui dari AzureRM ke Az, lihat perubahan pemecahan Az 2.0.0 untuk mengetahui apakah Anda harus membuat perubahan tambahan.

Daftar Isi

Perubahan umum yang dapat menyebabkan gangguan

Bagian ini merinci perubahan umum yang dapat menyebabkan gangguan yang merupakan bagian dari desain ulang modul Az.

Perubahan Awalan Kata Benda Cmdlet

Di modul AzureRM, cmdlet menggunakan AzureRM atau Azure sebagai awalan kata benda. Az menyederhanakan dan menormalkan nama cmdlet, sehingga semua cmdlet menggunakan 'Az' sebagai awalan kata benda cmdlet-nya. Contohnya:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Telah berubah menjadi:

Get-AzVM
Get-AzKeyVaultSecret

Untuk mempermudah transisi ke nama cmdlet baru ini, Az memperkenalkan dua cmdlet baru, Enable-AzureRmAlias dan Disable-AzureRmAlias. Enable-AzureRmAlias membuat alias untuk nama cmdlet lama di AzureRM yang memetakan ke nama cmdlet Az yang lebih baru. Menggunakan argumen -Scope dengan Enable-AzureRmAlias memungkinkan Anda untuk memilih di mana alias diaktifkan.

Misalnya, skrip berikut di AzureRM:

#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Dapat dijalankan dengan perubahan minimal menggunakan Enable-AzureRmAlias:

#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Menjalankan Enable-AzureRmAlias -Scope CurrentUser akan mengaktifkan alias untuk semua sesi PowerShell yang Anda buka, sehingga setelah menjalankan cmdlet ini, skrip seperti ini tidak perlu diubah sama sekali:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Untuk detail lengkap tentang penggunaan cmdlet alias, lihat referensi Enable-AzureRmAlias.

Saat Anda siap menonaktifkan alias, Disable-AzureRmAlias akan menghapus alias yang dibuat. Untuk detail selengkapnya, lihat referensi Disable-AzureRmAlias.

Penting

Saat menonaktifkan alias, pastikan bahwa alias dinonaktifkan untuk semua cakupan yang memiliki alias aktif.

Perubahan Nama Modul

Nama modul telah berubah dari AzureRM.* ke Az.*, kecuali untuk modul berikut:

AzureRM module Modul 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

Perubahan dalam nama modul berarti bahwa setiap skrip yang menggunakan #Requires atau Import-Module untuk memuat modul tertentu harus diubah untuk menggunakan modul baru sebagai gantinya. Untuk modul yang akhiran cmdlet-nya tidak berubah, ini berarti meskipun nama modul telah berubah, akhiran yang menunjukkan ruang operasi masih belum.

Memigrasi #Memerlukan dan Mengimpor Pernyataan Modul

Skrip yang menggunakan #Requires atau Import-Module untuk mendeklarasikan dependensi pada modul AzureRM harus diperbarui untuk menggunakan nama modul baru. Contohnya:

#Requires -Module AzureRM.Compute

Harus diubah menjadi:

#Requires -Module Az.Compute

Untuk Import-Module:

Import-Module -Name AzureRM.Compute

Harus diubah menjadi:

Import-Module -Name Az.Compute

Migrasi Pemanggilan Cmdlet yang Memenuhi Syarat

Skrip yang menggunakan pemanggilan cmdlet yang memenuhi syarat modul, seperti:

AzureRM.Compute\Get-AzureRmVM

Harus diubah untuk menggunakan modul dan nama cmdlet baru:

Az.Compute\Get-AzVM

Memigrasi dependensi manifes modul

Modul yang menunjukkan dependensi pada modul AzureRM melalui file manifes modul (.psd1) harus memperbarui nama modul di bagian RequiredModules:

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

Harus diubah menjadi:

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

Modul yang dihapus

Modul-modul berikut telah dihapus:

  • AzureRM.Backup
  • AzureRM.Compute.ManagedService
  • AzureRM.Scheduler

Alat untuk layanan ini tidak lagi didukung secara aktif. Pelanggan disarankan untuk pindah ke layanan alternatif segera setelah sesuai.

Windows PowerShell 5.1 and .NET 4.7.2

Menggunakan Az dengan PowerShell 5.1 untuk Windows memerlukan penginstalan .NET Framework 4.7.2. Menggunakan PowerShell Core 6.x atau yang lebih baru tidak memerlukan .NET Framework.

Penghapusan sementara masuk Pengguna menggunakan PSCredential

Karena perubahan alur autentikasi untuk .NET Standard, kami untuk sementara menghapus pengguna yang masuk melalui PSCredential. Kemampuan ini akan diperkenalkan kembali dalam rilis 1/15/2019 untuk PowerShell 5.1 untuk Windows. Ini dibahas secara detail dalam masalah GitHub ini.

Masuk kode perangkat default sebagai ganti perintah browser web

Karena perubahan dalam alur autentikasi untuk .NET Standar, kami menggunakan masuk perangkat sebagai alur masuk default selama masuk interaktif. Masuk berbasis browser web akan diperkenalkan kembali untuk PowerShell 5.1 untuk Windows sebagai default dalam rilis 1/15/2019. Pada saat itu, pengguna akan dapat memilih masuk perangkat menggunakan parameter Beralih.

Perubahan modul yang dapat menyebabkan gangguan

Bagian ini merinci perubahan spesifik yang dapat menyebabkan gangguan untuk modul dan cmdlet individual.

Az.ApiManagement (previously AzureRM.ApiManagement)

  • Menghapus cmdlet berikut:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Gunakan cmdlet Set-AzApiMenagement untuk mengatur properti ini sebagai gantinya
  • Menghapus properti berikut:
    • Properti yang dihapus PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration, dan ScmHostnameConfiguration pada jenis PsApiManagementHostnameConfiguration dari PsApiManagementContext. Sebagai gantinya gunakan PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration, dan ScmCustomHostnameConfiguration pada jenis PsApiManagementCustomHostNameConfiguration.
    • Menghapus properti StaticIPs dari PsApiManagementContext. Properti telah dibagi menjadi PublicIPAddresses dan PrivateIPAddresses.
    • Menghapus properti Location yang diperlukan dari cmdlet New-AzureApiManagementVirtualNetwork.

Az.Billing (previously AzureRM.Billing, AzureRM.Consumption, and AzureRM.UsageAggregates)

  • Parameter InvoiceName telah dihapus dari cmdlet Get-AzConsumptionUsageDetail. Skrip perlu menggunakan parameter identitas lain untuk faktur.

Az.CognitiveServices (previously AzureRM.CognitiveServices)

  • Menghapus set parameter GetSkusWithAccountParamSetName dari cmdlet Get-AzCognitiveServicesAccountSkus. Anda harus mendapatkan Skus dengan Jenis Akun dan Lokasi, bukan menggunakan ResourceGroupName dan Nama Akun.

Az.Compute (previously AzureRM.Compute)

  • IdentityIds dihapus dari properti Identity di objek PSVirtualMachine dan PSVirtualMachineScaleSet Skrip tidak boleh lagi menggunakan nilai kolom ini untuk membuat keputusan pemrosesan.
  • Jenis properti InstanceView objek PSVirtualMachineScaleSetVM diubah dari VirtualMachineInstanceView menjadi VirtualMachineScaleSetVMInstanceView
  • properti AutoOSUpgradePolicy dan AutomaticOSUpgrade dihapus dari properti UpgradePolicy
  • Jenis properti Sku objek PSSnapshotUpdate diubah dari DiskSku menjadi SnapshotSku
  • VmScaleSetVMParameterSet dihapus dari cmdlet Add-AzVMDataDisk, Anda tidak dapat lagi menambahkan disk data secara individual ke mesin virtual ScaleSet.

Az.DataFactory (sebelumnya AzureRM.DataFactories dan AzureRM.DataFactoryV2)

  • Parameter GatewayName telah menjadi wajib dalam cmdlet New-AzDataFactoryEncryptValue
  • Menghapus cmdlet New-AzDataFactoryGatewayKey
  • Menghapus parameter LinkedServiceName dari cmdlet Get-AzDataFactoryV2ActivityRun, Skrip tidak lagi menggunakan nilai bidang ini untuk membuat keputusan pemrosesan.

Az.DataLakeAnalytics (previously AzureRM.DataLakeAnalytics)

  • Menghapus cmdlet yang tidak digunakan lagi: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecret, dan Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (previously AzureRM.DataLakeStore)

  • Cmdlet berikut telah memiliki parameter Encoding yang diubah dari jenis FileSystemCmdletProviderEncoding menjadi System.Text.Encoding. Perubahan ini menghapus nilai pengodean String dan Oem. Semua nilai pengodean sebelumnya tetap ada.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Menghapus alias properti Tags yang tidak digunakan lagi dari cmdlet New-AzDataLakeStoreAccount dan Set-AzDataLakeStoreAccount

    Skrip menggunakan

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

    Harus diubah menjadi

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Menghapus properti Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps yang tidak digunakan lagi dari objek PSDataLakeStoreAccountBasic. Setiap skrip yang menggunakan PSDatalakeStoreAccount yang dikembalikan dari Get-AzDataLakeStoreAccount seharusnya tidak mereferensikan properti ini.

Az.KeyVault (previously AzureRM.KeyVault)

  • Properti PurgeDisabled telah dihapus dari objek PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem, dan PSKeyVaultSecretAttributes Skrip seharusnya tidak lagi merujuk properti PurgeDisabled untuk membuat keputusan pemrosesan.

Az.Media (previously AzureRM.Media)

  • Menghapus alias properti Tags yang tidak digunakan lagi dari cmdlet New-AzMediaService Skrip menggunakan

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

    Harus diubah menjadi

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

Az.Monitor (previously AzureRM.Insights)

  • Menghapus parameter Categories dan Timegrains nama jamak sebagai ganti nama parameter tunggal dari cmdlet Set-AzDiagnosticSetting Skrip menggunakan

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Harus diubah menjadi

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (previously AzureRM.Network)

  • Menghapus parameter ResourceId yang tidak digunakan lagi dari cmdlet Get-AzServiceEndpointPolicyDefinition
  • Menghapus properti EnableVmProtection yang tidak digunakan lagi dari objek PSVirtualNetwork
  • Menghapus cmdlet Set-AzVirtualNetworkGatewayVpnClientConfig yang tidak digunakan lagi

Skrip seharusnya tidak lagi membuat keputusan pemrosesan berdasarkan nilai-nilai di kolom ini.

Az.OperationalInsights (previously AzureRM.OperationalInsights)

  • Set parameter default untuk Get-AzOperationalInsightsDataSource dihapus, dan ByWorkspaceNameByKind menjadi set parameter default

    Skrip yang mencantumkan sumber data menggunakan

    Get-AzureRmOperationalInsightsDataSource
    

    Harus diubah untuk menentukan Jenis

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

Az.RecoveryServices (sebelumnya AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup, dan AzureRM.RecoveryServices.SiteRecovery)

  • Menghapus parameter Encryption dari cmdlet New/Set-AzRecoveryServicesAsrPolicy
  • Parameter TargetStorageAccountName kini wajib untuk pemulihan disk terkelola di cmdlet Restore-AzRecoveryServicesBackupItem
  • Menghapus parameter StorageAccountName dan StorageAccountResourceGroupName dalam cmdlet Restore-AzRecoveryServicesBackupItem
  • Menghapus parameter Name dalam cmdlet Get-AzRecoveryServicesBackupContainer

Az.Resources (previously AzureRM.Resources)

  • Menghapus parameter Sku dari cmdlet New/Set-AzPolicyAssignment

  • Menghapus parameter Password dari cmdlet New-AzADServicePrincipal dan New-AzADSpCredential Kata sandi dibuat secara otomatis, skrip yang menyediakan kata sandinya:

    New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
    

    Harus diubah untuk mengambil kata sandi dari output:

    $credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476
    $secPassword = $credential.Secret
    

Az.ServiceFabric (previously AzureRM.ServiceFabric)

  • Jenis pengembalian cmdlet berikut telah diubah:
    • Properti ServiceTypeHealthPolicies jenis ApplicationHealthPolicy telah dihapus.
    • Properti ApplicationHealthPolicies jenis ClusterUpgradeDeltaHealthPolicy telah dihapus.
    • Properti OverrideUserUpgradePolicy jenis ClusterUpgradePolicy telah dihapus.
    • Perubahan ini memengaruhi cmdlet berikut:
      • 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 (sebelumnya AzureRM.Sql)

  • Menghapus parameter State dan ResourceId dari cmdlet Set-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Menghapus cmdlet yang tidak digunakan lagi: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Menghapus parameter Current yang tidak digunakan lagi dari cmdlet Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Menghapus parameter DatabaseName yang tidak digunakan lagi dari cmdlet Get-AzSqlServerServiceObjective
  • Menghapus parameter PrivilegedLogin yang tidak digunakan lagi dari cmdlet Set-AzSqlDatabaseDataMaskingPolicy

Az.Storage (previously Azure.Storage and AzureRM.Storage)

  • Untuk mendukung pembuatan konteks penyimpanan Oauth hanya dengan nama akun penyimpanan, kumpulan parameter default telah diubah menjadi OAuthParameterSet
    • Contoh: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Parameter Location telah menjadi wajib dalam cmdlet Get-AzStorageUsage
  • Metode API Storage kini menggunakan Pola Asinkron Berbasis Tugas (TAP), bukan panggilan API sinkron. Contoh berikut menunjukkan perintah asinkron baru:

Snapshot 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

Berbagi 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

Membatalkan penghapusan blob yang dihapus sementara

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

Mengatur Tingkat 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 (previously AzureRM.Websites)

  • Menghapus properti yang tidak digunakan lagi dari objek PSAppServicePlan, PSCertificate, PSCloningInfo, dan PSSite