Az 1.0.0 için yeni değişiklikler

Bu belge, AzureRM 6.x ve yeni Az modülü (sürüm 1.x ve sonrası) arasındaki değişiklikler hakkında ayrıntılı bilgi sağlar. İçindekiler tablosu, betiklerinizi etkileyebilecek modüle özgü değişiklikler de dahil olmak üzere, tam geçiş yolunda size kılavuzluk edecektir.

AzureRM’den Az’ye geçiş işlemine başlangıç konusunda genel öneriler için bkz. AzureRM’den Az modülüne geçişi başlatma.

Önemli

Az 1.0.0 ile Az 2.0.0 arasında da hataya neden olan değişiklikler bulunur. AzureRM’den Az modülüne güncelleştirmek için bu kılavuzu izledikten sonra ek değişiklikler yapmanız gerekip gerekmediğini öğrenmek için bkz. Az 2.0.0 hataya neden olan değişiklikler.

İçindekiler

Hataya neden olan genel değişiklikler

Bu bölümde, Az modülünün yeniden tasarımının bir parçası olan, hataya neden olan genel değişiklikler ayrıntılı olarak açıklanır.

Cmdlet İsim Öneki Değişiklikleri

AzureRM modülünde cmdlet’ler isim ön eki olarak AzureRM veya Azure kullanılır. Az ile birlikte cmdlet adları basitleştirilip normalleştirilerek tüm cmdlet’lerin isim ön eki olarak 'Az' kullanılacak. Örneğin:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Yeni ad:

Get-AzVM
Get-AzKeyVaultSecret

Bu yeni cmdlet adlarına geçişi kolaylaştırmak için Az ile birlikte iki yeni cmdlet sunuluyor: Enable-AzureRmAlias ve Disable-AzureRmAlias. Enable-AzureRmAlias, AzureRM’deki eski cmdlet adları için yeni Az cmdlet adlarına eşlenen diğer adlar oluşturur. Enable-AzureRmAlias ile -Scope bağımsız değişkenini kullanarak diğer adları nerede etkinleştireceğinizi seçebilirsiniz.

Örneğin, şu AzureRM betiği:

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

Enable-AzureRmAlias kullanılarak küçük değişikliklerle çalıştırılabilir:

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

Enable-AzureRmAlias -Scope CurrentUser çalıştırıldığında açtığınız tüm PowerShell oturumları için diğer adları etkinleştireceğinden, bu cmdlet’i çalıştırdıktan sonra şunun gibi bir betiğin hiç değiştirilmesi gerekmez:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Diğer ad cmdlet’leri kullanımının tüm ayrıntıları için bkz. Enable-AzureRmAlias başvurusu.

Diğer adları devre dışı bırakmaya hazır olduğunuzda Disable-AzureRmAlias cmdlet'i oluşturulan diğer adları kaldırır. Tüm ayrıntıları için bkz. Disable-AzureRmAlias başvurusu.

Önemli

Diğer adları devre dışı bırakırken, diğer adların etkin olduğu tüm kapsamlarda devre dışı bırakıldıklarından emin olun.

Modül Adı Değişiklikleri

Aşağıdaki modüller dışında, önceden AzureRM.* olan modül adları Az.* olarak değiştirildi:

AzureRM modülü Az modülü
Azure Depolama 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

Modül adlarındaki değişiklikler nedeniyle, belirli modülleri yüklemek için #Requires ve Import-Module deyimlerini kullanan tüm betiklerin yeni modülü kullanacak şekilde güncelleştirilmesi gerekir. Cmdlet sonekinin değişmediği modüllerde bu, modül adı değişmiş olsa da işlem alanını belirten sonekin değişmediği anlamına gelir.

#Requires ve Import-Module Deyimlerini Geçirme

AzureRM modüllerine bağımlılığı bildirmek için #Requires veya Import-Module deyimini kullanan betikler yeni modül adlarını kullanacak şekilde güncelleştirilmelidir. Örneğin:

#Requires -Module AzureRM.Compute

Şöyle değiştirilmelidir:

#Requires -Module Az.Compute

Import-Module için:

Import-Module -Name AzureRM.Compute

Şöyle değiştirilmelidir:

Import-Module -Name Az.Compute

Tam Olarak Nitelenen Cmdlet Çağrılarını Geçirme

Şunun gibi modül adıyla nitelenen cmdlet çağrılarını kullanan betikler:

AzureRM.Compute\Get-AzureRmVM

Yeni modülü ve cmdlet adlarını kullanacak şekilde değiştirilmelidir:

Az.Compute\Get-AzVM

Modül bildirimi bağımlılıklarını geçirme

Bir modül bildirimi (.psd1) dosyası aracılığıyla AzureRM modüllerine bağımlılığı ifade eden modüllerin RequiredModules bölümünde güncelleştirilmiş modül adları olmalıdır:

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

Şöyle değiştirilmelidir:

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

Kaldırılan modüller

Aşağıdaki modüller kaldırıldı:

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

Bu hizmetlere yönelik araçlar artık etkin bir şekilde desteklenmemektedir. Müşterilerin uygun olan en yakın zamanda alternatif hizmetlere geçmesi önerilir.

Windows PowerShell 5.1 ve .NET 4.7.2

Windows için PowerShell 5.1 ile Az kullanımı, .NET Framework 4.7.2 sürümünün yüklenmesini gerektirir. PowerShell Core 6.x ve sonraki sürümleri .NET Framework gerektirmez.

PSCredential ile Kullanıcı oturumu açmanın geçici olarak kaldırılması

.NET Standard kimlik doğrulama akışındaki değişiklikler nedeniyle, PSCredential üzerinden kullanıcı oturumu açmayı geçici olarak kaldırıyoruz. Bu özellik, Windows için PowerShell 5.1’in 15/1/2019 tarihli yayınında yeniden kullanıma sunulacaktır. Bu konu, bu GitHub sorununda ayrıntılı olarak açıklanmıştır.

Web tarayıcısı istemi yerine varsayılan cihaz kodu ile oturum açma

.NET Standard kimlik doğrulama akışındaki değişiklikler nedeniyle, etkileşimli oturum açma sırasında varsayılan oturum açma akışı olarak cihazla oturum açmayı kullanıyoruz. Web tarayıcısı tabanlı oturum açma, Windows için PowerShell 5.1'de 15/1/2019 tarihli yayınla birlikte yeniden varsayılan seçenek olarak kullanıma sunulacaktır. İlgili tarihte, kullanıcılar bir Switch parametresini kullanarak cihaz oturumunu seçebilecek.

Modüldeki yeni değişiklikler

Bu bölümde, belirli modüller ve cmdlet’lerde hataya neden olan değişiklikler ayrıntılı olarak açıklanır.

Az.ApiManagement (eski adıyla AzureRM.ApiManagement)

  • Aşağıdaki cmdlet'ler kaldırıldı:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Bu özellikleri ayarlamak için bunun yerine Set-AzApiManagement cmdlet’ini kullanın
  • Aşağıdaki özellikler kaldırıldı:
    • PsApiManagementContext öğesinden PsApiManagementHostnameConfiguration türündeki PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration ve ScmHostnameConfiguration özelliği kaldırıldı. Bunun yerine PsApiManagementCustomHostNameConfiguration türündeki PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration ve ScmCustomHostnameConfiguration özelliğini kullanın.
    • PsApiManagementContext öğesinden StaticIPs özelliği kaldırıldı. Özellik PublicIPAddresses ve PrivateIPAddresses olarak bölündü.
    • New-AzureApiManagementVirtualNetwork cmdlet’inden gerekli olan Location özelliği kaldırıldı.

Az.Billing (eski adıyla AzureRM.Billing, AzureRM.Consumption ve AzureRM.UsageAggregates)

  • Get-AzConsumptionUsageDetail cmdlet’inden InvoiceName parametresi kaldırıldı. Fatura için betiklerin diğer kimlik parametrelerini kullanması gerekir.

Az.CognitiveServices (eski adıyla AzureRM.CognitiveServices)

  • Get-AzCognitiveServicesAccountSkus cmdlet’inden GetSkusWithAccountParamSetName parametre kümesi kaldırıldı. ResourceGroupName ve Hesap Adı parametrelerini kullanmak yerine Sku’ları Hesap Türüne ve Konuma göre almalısınız.

Az.Compute (eski adıyla AzureRM.Compute)

  • PSVirtualMachine ve PSVirtualMachineScaleSet nesnelerinde Identity özelliğinden IdentityIds kaldırıldı Betikler artık işleme kararları vermek için bu alanın değerini kullanmamalıdır.
  • PSVirtualMachineScaleSetVM nesnesinin InstanceView özelliğinin VirtualMachineInstanceView olan türü VirtualMachineScaleSetVMInstanceView olarak değiştirildi
  • UpgradePolicy özelliğinden AutoOSUpgradePolicy ve AutomaticOSUpgrade özelliği kaldırıldı
  • PSSnapshotUpdate nesnesindeki Sku özelliğinin DiskSku olan türü SnapshotSku olarak değiştirildi
  • VmScaleSetVMParameterSet, Add-AzVMDataDisk cmdlet’inden kaldırıldığından artık bir veri diskini ScaleSet VM’sine tek başına ekleyemezsiniz.

Az.DataFactory (eski adıyla AzureRM.DataFactories ve AzureRM.DataFactoryV2)

  • New-AzDataFactoryEncryptValue cmdlet’inde GatewayName parametresi zorunlu hale geldi
  • New-AzDataFactoryGatewayKey cmdlet'i kaldırıldı
  • Get-AzDataFactoryV2ActivityRun cmdlet’inden LinkedServiceName parametresi kaldırıldı Betikler artık işleme kararları vermek için bu alanın değerini kullanmamalıdır.

Az.DataLakeAnalytics (eski adıyla AzureRM.DataLakeAnalytics)

  • Kullanım dışı cmdlet’ler kaldırıldı: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecret ve Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (eski adıyla AzureRM.DataLakeStore)

  • Aşağıdaki cmdlet’lerin Encoding parametresinin FileSystemCmdletProviderEncoding olan türü System.Text.Encoding olarak değişti. Bu değişiklikle birlikte String ve Oem kodlama değerleri kaldırılıyor. Önceki diğer tüm kodlama değerleri olduğu gibi kaldı.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • New-AzDataLakeStoreAccount ve Set-AzDataLakeStoreAccount cmdlet’inden kullanım dışı Tags özellik diğer adı kaldırıldı

    Şunları kullanan betikler:

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

    Şöyle değiştirilmelidir:

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • PSDataLakeStoreAccountBasic nesnesinden kullanım dışı Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps özelliği kaldırıldı. Get-AzDataLakeStoreAccount cmdlet’inden döndürülen PSDatalakeStoreAccount özelliğini kullanan hiçbir betik bu özelliklere başvurmamalıdır.

Az.KeyVault (eski adıyla AzureRM.KeyVault)

  • PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem ve PSKeyVaultSecretAttributes nesnesinden PurgeDisabled özelliği kaldırıldı Betikler artık işleme kararları vermek için PurgeDisabled özelliğine başvurmamalıdır.

Az.Media (eski adıyla AzureRM.Media)

  • New-AzMediaService cmdlet’inden kullanım dışı Tags özelliği diğer adı kaldırıldı Şunları kullanan betikler:

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

    Şöyle değiştirilmelidir:

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

Az.Monitor (eski adıyla AzureRM.Insights)

  • Set-AzDiagnosticSetting cmdlet’inden alınan tekil parametre adları tercih edilerek çoğul ad Categories ve Timegrains parametresi kaldırıldı Şunları kullanan betikler:

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Şöyle değiştirilmelidir:

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (eski adıyla AzureRM.Network)

  • Get-AzServiceEndpointPolicyDefinition cmdlet’inden kullanım dışı ResourceId parametresi kaldırıldı
  • PSVirtualNetwork nesnesinden kullanım dışı EnableVmProtection özelliği kaldırıldı
  • Kullanım dışı Set-AzVirtualNetworkGatewayVpnClientConfig cmdlet’i kaldırıldı

Betikler artık bu alanların değerlerini temel alan işleme kararları almamalıdır.

Az.OperationalInsights (eski adıyla AzureRM.OperationalInsights)

  • Get-AzOperationalInsightsDataSource için varsayılan parametre kümesi kaldırıldı, varsayılan parametre kümesi ByWorkspaceNameByKind oldu

    Veri kaynaklarını şunu kullanarak listeleyen betikler:

    Get-AzureRmOperationalInsightsDataSource
    

    Bir Tür belirtecek şekilde değiştirilmelidir

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

Az.RecoveryServices (eski adıyla AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup ve AzureRM.RecoveryServices.SiteRecovery)

  • New/Set-AzRecoveryServicesAsrPolicy cmdlet’inden Encryption parametresi kaldırıldı
  • Artık Restore-AzRecoveryServicesBackupItem cmdlet'indeki yönetilen disk geri yükleme işlemleri için TargetStorageAccountName parametresi zorunludur
  • Restore-AzRecoveryServicesBackupItem cmdlet’inden StorageAccountName ve StorageAccountResourceGroupName parametresi kaldırıldı
  • Get-AzRecoveryServicesBackupContainer cmdlet’inden Name parametresi kaldırıldı

Az.Resources (eski adıyla AzureRM.Resources)

  • New/Set-AzPolicyAssignment cmdlet’inden Sku parametresi kaldırıldı

  • New-AzADServicePrincipal ve New-AzADSpCredential cmdlet’inden Password parametresi kaldırıldı Parolalar otomatik olarak oluşturulduğundan, daha önce parolayı sağlayan betikler:

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

    Parolayı çıktıdan alacak şekilde değiştirilmelidir:

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

Az.ServiceFabric (eski adıyla AzureRM.ServiceFabric)

  • Aşağıdaki cmdlet dönüş türleri değiştirildi:
    • ApplicationHealthPolicy türündeki ServiceTypeHealthPolicies özelliği kaldırıldı.
    • ClusterUpgradeDeltaHealthPolicy türündeki ApplicationHealthPolicies özelliği kaldırıldı.
    • ClusterUpgradePolicy türündeki OverrideUserUpgradePolicy özelliği kaldırıldı.
    • Bu değişiklikler aşağıdaki cmdlet'leri etkiler:
      • 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 (eski adıyla AzureRM.Sql)

  • Set-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet’inden State ve ResourceId parametresi kaldırıldı
  • Kullanım dışı cmdlet’ler kaldırıldı: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Get-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet’inden kullanım dışı Current parametresi kaldırıldı
  • Get-AzSqlServerServiceObjective cmdlet’inden kullanım dışı DatabaseName parametresi kaldırıldı
  • Set-AzSqlDatabaseDataMaskingPolicy cmdlet’inden kullanım dışı PrivilegedLogin parametresi kaldırıldı

Az.Storage (eski adıyla Azure.Storage and AzureRM.Storage)

  • Yalnızca depolama hesabı adıyla bir Oauth depolama bağlamı oluşturulmasının desteklenmesi için varsayılan parametre kümesi OAuthParameterSet olarak değiştirildi
    • Örnek: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Get-AzStorageUsage cmdlet’inde Location parametresi zorunlu hale geldi
  • Depolama API’si metotları artık zaman uyumlu API çağrıları yerine Görev Tabanlı Zaman Uyumsuz Düzeni (TAP) kullanıyor. Aşağıdaki örneklerde yeni zaman uyumsuz komutlar gösterilir:

Blob Anlık Görüntüsü

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

Anlık Görüntüyü Paylaş

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

Geçici silinen blob’un silinmesini geri al

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

Blob Katmanını Ayarla

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 (eski adıyla AzureRM.Websites)

  • PSAppServicePlan, PSCertificate, PSCloningInfo ve PSSite nesnesinden kullanım dışı özellikler kaldırıldı