Memutus perubahan untuk Az 1.0.0

Dokumen ini menyediakan informasi mendetail tentang perubahan antara AzureRM 6.x dan modul Az baru, versi 1.x dan yang lebih baru. Daftar isi akan membantu memandu Anda melalui jalur migrasi lengkap, termasuk perubahan khusus modul yang mungkin memengaruhi skrip Anda.

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

Penting

Ada perubahan antara Az 1.0.0 dan Az 2.0.0 juga. Setelah mengikuti panduan untuk memperbarui dari AzureRM ke Az, lihat perubahan terbaru Az 2.0.0 untuk mengetahui jika Anda perlu membuat perubahan tambahan.

Daftar Isi

Perubahan umum yang tidak berubah

Bagian ini menjelaskan perubahan umum yang menjadi bagian dari desain ulang modul Az.

Perubahan Prefiks Kata Benda Cmdlet

Dalam modul AzureRM, cmdlet menggunakan baik AzureRM atau Azure sebagai prefiks kata benda. Az menyederhanakan dan menormalisasikan nama cmdlet, sehingga semua cmdlet menggunakan 'Az' sebagai prefiks kata benda cmdlet mereka. Misalnya:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Telah berubah menjadi:

Get-AzVM
Get-AzKeyVaultSecret

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

Misalnya, skrip berikut ini di AzureRM:

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

Dapat dijalankan dengan perubahan minimal Enable-AzureRmAlias menggunakan:

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

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

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

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

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

Penting

Ketika menonaktifkan alias, pastikan alias dinonaktifkan untuk semua lingkup yang memiliki alias yang diaktifkan.

Module Name Changes

Nama modul telah berubah dari AzureRM.* menjadi , kecuali modul berikut Az.* ini:

Modul AzureRM 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 skrip apa pun yang menggunakan atau memuat #Requires modul tertentu perlu diubah untuk menggunakan modul Import-Module baru. Untuk modul yang akhiran cmdlet belum berubah, hal ini berarti meskipun nama modul telah berubah, akhiran yang menunjukkan ruang operasi belum.

Melakukan migrasi #Requires dan Import-Module Migrasi

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

#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 Fully-Qualified Cmdlet

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

AzureRM.Compute\Get-AzureRmVM

Harus diubah agar dapat menggunakan nama modul dan cmdlet baru:

Az.Compute\Get-AzVM

Migrasi dependensi manifes modul

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

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

Harus diubah menjadi:

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

Modul yang dihapus

Modul berikut ini telah dihapus:

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

Alat untuk layanan ini tidak lagi didukung secara aktif. Pelanggan didorong untuk beralih ke layanan alternatif segera setelah memudahkan.

Windows PowerShell 5.1 dan .NET 4.7.2

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

Penghapusan sementara pengguna masuk menggunakan PSCredential

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

Kode perangkat default masuk, bukan perintah browser web

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

Perubahan pecah modul

Bagian ini menjelaskan perubahan khusus untuk modul dan cmdlet individual.

Az.ApiManagement (sebelumnya AzureRM.ApiManagement)

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

Az.Billing (sebelumnya AzureRM.Billing, AzureRM.Consumption, dan AzureRM.UsageAggregates)

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

Az.CognitiveServices (sebelumnya AzureRM.CognitiveServices)

  • Kumpulan GetSkusWithAccountParamSetName parameter yang dihapus dari Get-AzCognitiveServicesAccountSkus cmdlet. Anda harus mendapatkan Skus dengan Tipe dan Lokasi Akun, dan bukan menggunakan ResourceGroupName dan Nama Akun.

Az.Compute (sebelumnya AzureRM.Compute)

  • IdentityIds dihapus dari Identity properti dalam dan objek Skrip tidak boleh lagi menggunakan nilai bidang ini untuk membuat keputusan PSVirtualMachine PSVirtualMachineScaleSet pemrosesan.
  • Tipe InstanceView properti objek diubah dari PSVirtualMachineScaleSetVM VirtualMachineInstanceView menjadi VirtualMachineScaleSetVMInstanceView
  • AutoOSUpgradePolicy dan AutomaticOSUpgrade properti dihapus dari UpgradePolicy properti
  • Tipe properti Sku dalam objek diubah dari PSSnapshotUpdate DiskSku menjadi SnapshotSku
  • VmScaleSetVMParameterSet dihapus dari Add-AzVMDataDisk cmdlet, Anda tidak dapat lagi menambahkan disk data satu per satu ke ScaleSet VM.

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

  • Parameter GatewayName ini telah menjadi wajib di New-AzDataFactoryEncryptValue cmdlet
  • Cmdlet New-AzDataFactoryGatewayKey yang dihapus
  • Parameter LinkedServiceName yang dihapus dari skrip cmdlet tidak boleh menggunakan nilai bidang ini lagi untuk membuat keputusan Get-AzDataFactoryV2ActivityRun pemrosesan.

Az.DataLakeAnalytics (sebelumnya AzureRM.DataLakeAnalytics)

  • Cmdlets yang dihapus: New-AzDataLakeAnalyticsCatalogSecret , Remove-AzDataLakeAnalyticsCatalogSecret , dan Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (sebelumnya AzureRM.DataLakeStore)

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

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

    Skrip menggunakan

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

    Harus diubah menjadi

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Properti yang sudah tidak berlaku Identity lagi , , , , , , , EncryptionState , , EncryptionProvisioningState , , EncryptionConfig dari FirewallState FirewallRules VirtualNetworkRules TrustedIdProviderState TrustedIdProviders DefaultGroup NewTier CurrentTier FirewallAllowAzureIps PSDataLakeStoreAccountBasic objek. Skrip apa pun yang menggunakan PSDatalakeStoreAccount hasil dari seharusnya tidak Get-AzDataLakeStoreAccount mereferensikan properti ini.

Az.KeyVault (sebelumnya AzureRM.KeyVault)

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

Az.Media (sebelumnya AzureRM.Media)

  • Menghapus alias properti yang Tags sudah tidak berlaku dari skrip cmdlet New-AzMediaService menggunakan

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

    Harus diubah menjadi

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

Az.Monitor (sebelumnya AzureRM.Insights)

  • Menghapus nama dan Categories Timegrains parameter bentuk jamak untuk mendukung nama parameter singular dari Set-AzDiagnosticSetting Skrip cmdlet menggunakan

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Harus diubah menjadi

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (sebelumnya AzureRM.Network)

  • Menghapus parameter yang sudah ResourceId tidak berlaku dari Get-AzServiceEndpointPolicyDefinition cmdlet
  • Properti yang dihapus dari EnableVmProtection PSVirtualNetwork objek
  • Cmdlet yang dihapus yang Set-AzVirtualNetworkGatewayVpnClientConfig tidak lagi dipakai

Skrip tidak boleh lagi membuat keputusan pemrosesan berdasarkan nilai bidang ini.

Az.OperationalInsights (sebelumnya AzureRM.OperationalInsights)

  • Kumpulan parameter default Get-AzOperationalInsightsDataSource untuk dihapus, ByWorkspaceNameByKind dan telah menjadi kumpulan 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)

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

Az.Resources (sebelumnya AzureRM.Resources)

  • Parameter Sku yang dihapus dari New/Set-AzPolicyAssignment cmdlet

  • Parameter Password yang dihapus dari dan kata sandi cmdlet secara otomatis New-AzADServicePrincipal New-AzADSpCredential dihasilkan, skrip yang menyediakan kata sandi:

    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 (sebelumnya AzureRM.ServiceFabric)

  • Tipe pengembalian cmdlet berikut ini telah diubah:
    • Properti ServiceTypeHealthPolicies tipe ApplicationHealthPolicy telah dihapus.
    • Properti ApplicationHealthPolicies tipe ClusterUpgradeDeltaHealthPolicy telah dihapus.
    • Properti OverrideUserUpgradePolicy tipe 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)

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

Az.Storage (sebelumnya Azure.Storage dan 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 ini telah menjadi wajib di Get-AzStorageUsage cmdlet
  • Metode Storage API sekarang menggunakan Pola Asinkron Berbasis tugas (TAP), bukan panggilan API sinkron. Contoh berikut memperlihatkan perintah asinkron baru:

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

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

Undelete soft-deleted blob

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

Set Blob Tier

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 (sebelumnya AzureRM.Websites)

  • Properti yang sudah tidak berlaku dari PSAppServicePlan objek , , , PSCertificate PSCloningInfo dan PSSite