Руководство по переходу на Az версии 2.0.0

Этот документ описывает изменения между Az версии 1.0.0 и Az версии 2.0.0.

Оглавление

Критические изменения модуля

Az.Compute

  • Параметр Managed удален из командлетов New-AzAvailabilitySet и Update-AzAvailabilitySet. Теперь используется Sku = Aligned.

    Перед

    Update-AzAvailabilitySet -Managed
    

    После

    Update-AzAvailabilitySet -Sku Aligned
    
  • Для согласованности параметр Image удален из наборов параметров ByName и ByResourceId в Update-AzImage.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр ImageName не используется, поэтому удаление этого параметра не влияет на функциональность.

    Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Image $Image -Tag $tags
    
    Update-AzImage -ResourceId $Id -Image $Image -Tag $tags
    

    После

    Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags
    
    Update-AzImage -ResourceId $Id -Tag $tags
    
  • Для согласованности параметр Name удален из наборов параметров ByObject и ByResourceId в Restart-AzVM.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр Name не используется, поэтому удаление этого параметра не влияет на функциональность.

    Restart-AzVM -InputObject $VM -Name $Name
    
    Restart-AzVM -ResourceId $Id -Name $Name
    

    После

    Restart-AzVM -InputObject $VM
    
    Restart-AzVM -ResourceId $Id
    
  • Для согласованности параметр Name удален из наборов параметров ByObject и ByResourceId в Start-AzVM.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр Name не используется, поэтому удаление этого параметра не влияет на функциональность.

    Start-AzVM -InputObject $VM -Name $Name
    
    Start-AzVM -ResourceId $Id -Name $Name
    

    После

    Start-AzVM -InputObject $VM
    
    Start-AzVM -ResourceId $Id
    
  • Для согласованности параметр Name удален из наборов параметров ByObject и ByResourceId в Stop-AzVM.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр Name не используется, поэтому удаление этого параметра не влияет на функциональность.

    Stop-AzVM -InputObject $VM -Name $Name
    
    Stop-AzVM -ResourceId $Id -Name $Name
    

    После

    Stop-AzVM -InputObject $VM
    
    Stop-AzVM -ResourceId $Id
    
  • Для согласованности параметр Name удален из наборов параметров ByObject и ByResourceId в Remove-AzVM.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр Name не используется, поэтому удаление этого параметра не влияет на функциональность.

    Remove-AzVM -InputObject $VM -Name $Name
    
    Remove-AzVM -ResourceId $Id -Name $Name
    

    После

    Remove-AzVM -InputObject $VM
    
    Remove-AzVM -ResourceId $Id
    
  • Для согласованности параметр Name удален из наборов параметров ByObject и ByResourceId в Set-AzVM.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр Name не используется, поэтому удаление этого параметра не влияет на функциональность.

    Set-AzVM -InputObject $VM -Name $Name ...
    
    Set-AzVM -ResourceId $Id -Name $Name ...
    

    После

    Set-AzVM -InputObject $VM ...
    
    Set-AzVM -ResourceId $Id ...
    
  • Для согласованности параметр Name удален из наборов параметров ByObject и ByResourceId в Save-AzVMImage.

    Перед

    Обратите внимание, что приведенный ниже код работает, но переданный параметр Name не используется, поэтому удаление этого параметра не влияет на функциональность.

    Save-AzVMImage -InputObject $VM -Name $Name ...
    
    Save-AzVMImage -ResourceId $Id -Name $Name ...
    

    После

    Save-AzVMImage -InputObject $VM ...
    
    Save-AzVMImage -ResourceId $Id ...
    
  • Добавлено свойство ProtectionPolicy для инкапсуляции свойства ProtectFromScaleIn в классе PSVirtualMachineScaleSetVM.

    Перед

    $vmss = Get-AzVMssVM ...
    $vmss.ProtectFromScaleIn = $true
    
    $vmss = Update-AzVMssVM ...
    $vmss.ProtectFromScaleIn = $true
    
    $vmss = Remove-AzVMssVMDataDisk ...
    $vmss.ProtectFromScaleIn = $true
    

    После

    $vmss = Get-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Update-AzVMssVM ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    $vmss = Remove-AzVMssVMDataDisk ...
    $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
    
    
  • Добавлено свойство EncryptionSettingsCollection для заключения свойства EncryptionSettings в классе PSDisk.

    Перед

    $disk = New-AzDisk ... | Set-AzDiskDiskEncrytionKey ...
    $disk.EncryptionSettings
    
    $disk = New-AzDisk ... | Set-AzDiskKeyEncrytionKey ...
    $disk.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateDiskEncryptionKey ...
    $update.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateKeyEncryptionKey ...
    $update.EncryptionSettings
    

    После

    $disk = New-AzDisk ... | Set-AzDiskDiskEncrytionKey ...
    $disk.EncryptionSettingsCollection.EncryptionSettings
    
    $disk = New-AzDisk ... | Set-AzDiskKeyEncrytionKey ...
    $disk.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateDiskEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateKeyEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
  • Добавлено свойство EncryptionSettingsCollection для заключения свойства EncryptionSettings в классе PSSnapshot.

    Перед

    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotDiskEncryptionKey ...
    $snap.EncryptionSettings
    
    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotKeyEncryptionKey ...
    $snap.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateDiskEncryptionKey ...
    $update.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateKeyEncryptionKey ...
    $update.EncryptionSettings
    

    После

    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotDiskEncryptionKey ...
    $snap.EncryptionSettingsCollection.EncryptionSettings
    
    $snap = New-AzSnapshotConfig ... | Set-AzSnapshotKeyEncryptionKey ...
    $snap.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateDiskEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
    $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateKeyEncryptionKey ...
    $update.EncryptionSettingsCollection.EncryptionSettings
    
  • Удалено свойство VirtualMachineProfile из класса PSVirtualMachineScaleSet.

    Перед

    $vmss = New-AzVMSSConfig ...
    $vmss.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled = $true
    

    После

    $vmss = New-AzVMSSConfig ...
    $vmss.AdditionalCapabilities.UltraSSDEnabled = $true
    
  • Для командлета Set-AzVMBootDiagnostic удален устаревший псевдоним (ранее — Set-AzVMBootDiagnostics).

    Перед

    Использование устаревшего псевдонима

    Set-AzVMBootDiagnostics
    

    После

    Set-AzVMBootDIagnostic
    
  • Для командлета Export-AzLogAnalyticThrottledRequest удален устаревший псевдоним (ранее — Export-AzLogAnalyticThrottledRequests).

    Перед

    Использование устаревшего псевдонима

    Export-AzLogAnalyticThrottledRequests
    

    После

    Export-AzLogAnalyticThrottledRequest
    

Az.HDInsight

  • Удалены командлеты Grant-AzHDInsightHttpServicesAccess и Revoke-AzHDInsightHttpServicesAccess. Они больше не требуются, потому что доступ по протоколу HTTP всегда включен во всех кластерах HDInsight.
  • Добавлен новый командлет Set-AzHDInsightGatewayCredential. С помощью этого командлета можно изменить имя пользователя и пароль HTTP шлюза (заменяет Grant-AzHDInsightHttpServicesAccess).
  • Обновлен командлет Get-AzHDInsightJobOutput для поддержки детализированного доступа на основе ролей к ключу к хранилищу.
    • На пользователей с ролями оператора, участника или владельца кластера HDInsight это не повлияет.
    • Только пользователям с ролью читателя нужно указывать параметр DefaultStorageAccountKey явным образом.

Дополнительные сведения об этих изменениях доступа на основе ролей см. по адресу aka.ms/hdi-config-update.

Перед

Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential

После

Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential

Пользователи только с ролью читателя для командлета Get-AzHDInsightJobOutput

Перед

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId

После

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId -DefaultStorageAccountKey $storageAccountKey

Az.Storage

  • Пространства имен для типов, возвращаемых командлетами, выполняющими действия с большими двоичными объектами, очередями и файлами, были изменены с Microsoft.WindowsAzure.Storage на Microsoft.Azure.Storage. Хотя согласно политике критических изменений технически это не является критическим изменением, для взаимодействия с объектами, возвращаемыми этими командлетами, может потребоваться внести некоторые изменения в код, использующий методы из пакета SDK .NET для службы хранилища.

    Пример 1. Добавление сообщения в очередь (изменение пространства имен объекта CloudQueueMessage)

    До:

    $queue = Get-AzStorageQueue –Name $queueName –Context $ctx
    $queueMessage = New-Object -TypeName "Microsoft.WindowsAzure.Storage.Queue.CloudQueueMessage,$($queue.CloudQueue.GetType().Assembly.FullName)" -ArgumentList "This is message 1"
    $queue.CloudQueue.AddMessageAsync($QueueMessage)
    

    После:

    $queue = Get-AzStorageQueue –Name $queueName –Context $ctx
    $queueMessage = New-Object -TypeName "Microsoft.Azure.Storage.Queue.CloudQueueMessage,$($queue.CloudQueue.GetType().Assembly.FullName)"  -ArgumentList "This is message 1"
    $queue.CloudQueue.AddMessageAsync($QueueMessage)
    

    Пример 2. Получение атрибутов файла или большого двоичного объекта с условием AccessCondition (изменение пространства имен объекта AccessCondition)

    До:

    $accessCondition= New-Object Microsoft.WindowsAzure.Storage.AccessCondition
    
    $blob = Get-AzureStorageBlob -Container $containerName -Blob $blobName
    $blob.ICloudBlob.FetchAttributes($accessCondition)
    
    $file = Get-AzureStorageFile -ShareName $shareName -Path $filepath
    $file.FetchAttributes($accessCondition)
    

    После:

    $accessCondition= New-Object Microsoft.Azure.Storage.AccessCondition
    
    $blob = Get-AzureStorageBlob -Container $containerName -Blob $blobName
    $blob.ICloudBlob.FetchAttributes($accessCondition)
    
    $file = Get-AzureStorageFile -ShareName $shareName -Path $filepath
    $file.FetchAttributes($accessCondition)
    
  • Хотя технически это не является критическим изменением, вы обнаружите различия в значениях свойства SKU.Name учетных записей хранения в выходных данных, возвращенных из New/Get/Set-AzStorageAccount. Ниже указаны эти изменения. (После изменения значения SkuName в выходных и входных данных согласовываются.)

    • StandardLRS -> Standard_LRS;
    • StandardGRS -> Standard_GRS;
    • StandardRAGRS -> Standard_RAGRS;
    • StandardZRS -> Standard_ZRS;
    • PremiumLRS -> Premium_LRS.
  • Изменено поведение службы по умолчанию при создании учетной записи хранения без указания параметра Kind. В предыдущих версиях при создании учетной записи хранения без указания параметра Kind использовался тип Storage. В новой версии значением параметра Kind по умолчанию является StorageV2. Если вам нужно создать учетную запись хранения версии 1 с параметром Kind со значением Storage, добавьте параметр -Kind Storage.

    Пример. Создание учетной записи хранения (изменение вида по умолчанию)

    До:

    PS c:\> New-AzStorageAccount -ResourceGroupName groupname -Name accountname -SkuName Standard_LRS -Location "westus"
    
    StorageAccountName ResourceGroupName Location SkuName     Kind      AccessTier CreationTime          ProvisioningState EnableHttpsTrafficOnly
    ------------------ ----------------- -------- -------     ----      ---------- ------------          ----------------- ----------------------
    accountname        groupname         westus   StandardLRS Storage   Hot        4/17/2018 10:34:32 AM Succeeded         False
    

    После:

    PS c:\> New-AzStorageAccount -ResourceGroupName groupname -Name accountname -SkuName Standard_LRS -Location "westus"
    
    StorageAccountName ResourceGroupName Location SkuName      Kind      AccessTier CreationTime          ProvisioningState EnableHttpsTrafficOnly
    ------------------ ----------------- -------- -------      ----      ----------  ------------          ----------------- ----------------------
    accountname        groupname         westus   Standard_LRS StorageV2 Hot        4/17/2018 10:34:32 AM Succeeded         False