你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Az 2.0.0 迁移指南

本文档介绍了 Az 版本 1.0.0 和 2.0.0 之间的变更。

目录

模块中断性变更

Az.Compute

  • New-AzAvailabilitySetUpdate-AzAvailabilitySet cmdlet 中删除了 Managed 参数,支持使用 Sku = Aligned

    以前

    Update-AzAvailabilitySet -Managed
    

    之后

    Update-AzAvailabilitySet -Sku Aligned
    
  • 为了确保一致性,从 Update-AzImage 中的“ByName”和“ByResourceId”参数集删除了 Image 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 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
    
  • 为了确保一致性,从 Restart-AzVM 中的“ByObject”和“ByResourceId”参数集删除了 Name 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 Name,因此删除此参数没有功能影响。

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

    之后

    Restart-AzVM -InputObject $VM
    
    Restart-AzVM -ResourceId $Id
    
  • 为了确保一致性,从 Start-AzVM 中的“ByObject”和“ByResourceId”参数集删除了 Name 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 Name,因此删除此参数没有功能影响。

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

    之后

    Start-AzVM -InputObject $VM
    
    Start-AzVM -ResourceId $Id
    
  • 为了确保一致性,从 Stop-AzVM 中的“ByObject”和“ByResourceId”参数集删除了 Name 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 Name,因此删除此参数没有功能影响。

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

    之后

    Stop-AzVM -InputObject $VM
    
    Stop-AzVM -ResourceId $Id
    
  • 为了确保一致性,从 Remove-AzVM 中的“ByObject”和“ByResourceId”参数集删除了 Name 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 Name,因此删除此参数没有功能影响。

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

    之后

    Remove-AzVM -InputObject $VM
    
    Remove-AzVM -ResourceId $Id
    
  • 为了确保一致性,从 Set-AzVM 中的“ByObject”和“ByResourceId”参数集删除了 Name 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 Name,因此删除此参数没有功能影响。

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

    之后

    Set-AzVM -InputObject $VM ...
    
    Set-AzVM -ResourceId $Id ...
    
  • 为了确保一致性,从 Save-AzVMImage 中的“ByObject”和“ByResourceId”参数集删除了 Name 参数

    以前

    请注意,下面的代码可以正常运行,但没有使用传入的 Name,因此删除此参数没有功能影响。

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

    之后

    Save-AzVMImage -InputObject $VM ...
    
    Save-AzVMImage -ResourceId $Id ...
    
  • 添加了 ProtectionPolicy 属性,以便在 PSVirtualMachineScaleSetVM 中封装 ProtectFromScaleIn 属性

    以前

    $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
    
  • PSVirtualMachineScaleSet 中删除了 VirtualMachineProfile 属性

    以前

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

    之后

    $vmss = New-AzVMSSConfig ...
    $vmss.AdditionalCapabilities.UltraSSDEnabled = $true
    
  • Cmdlet Set-AzVMBootDiagnostic 删除了 Set-AzVMBootDiagnostics 的别名

    以前

    使用弃用的别名

    Set-AzVMBootDiagnostics
    

    之后

    Set-AzVMBootDIagnostic
    
  • Cmdlet Export-AzLogAnalyticThrottledRequest 删除了 Export-AzLogAnalyticThrottledRequests 的别名

    以前

    使用弃用的别名

    Export-AzLogAnalyticThrottledRequests
    

    之后

    Export-AzLogAnalyticThrottledRequest
    

Az.HDInsight

  • 删除了 Grant-AzHDInsightHttpServicesAccessRevoke-AzHDInsightHttpServicesAccess cmdlet。 这些不再是必需的,因为 HTTP 访问权限在所有 HDInsight 群集上始终是启用的。
  • 添加了新的 Set-AzHDInsightGatewayCredential Cmdlet。 使用此 cmdlet 更改网关 HTTP 用户名和密码(替换 Grant-AzHDInsightHttpServicesAccess)。
  • 更新了 Get-AzHDInsightJobOutput cmdlet,支持对存储密钥进行细化的基于角色的访问。
    • 具有 HDInsight 群集的“操作员”、“参与者”或“所有者”角色的用户将不受影响。
    • 只具有“读者”角色的用户将需要显式指定 DefaultStorageAccountKey 参数。

有关这些基于角色的访问权限更改的详细信息,请参阅 aka.ms/hdi-config-update

以前

Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential

之后

Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential

只具有“读者”角色的用户(针对 cmdlet Get-AzHDInsightJobOutput)

以前

Get-AzHDInsightJobOutput  -ClusterName $clusterName -JobId $jobId

之后

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

Az.Storage

  • 从 Blob、队列和文件 cmdlet 返回的类型的命名空间已将其命名空间从 Microsoft.WindowsAzure.Storage 更改为 Microsoft.Azure.Storage。 虽然根据中断性变更策略的标准,这在技术上不属于中断性变更,但可能需要在使用存储 .Net SDK 提供的方法的代码中进行一些更改,以便与这些 cmdlet 返回的对象进行交互。

    示例 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 提取 Blob/文件属性(更改 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)
    
  • 虽然从技术上来说这不属于中断性变更,但你会注意到从 New/Get/Set-AzStorageAccount 更改返回的存储帐户的 Sku.Name 属性中的输出差异如下所示。 (更改后,输出和输入 SkuName 会对齐。)

    • “StandardLRS”->“Standard_LRS”;
    • “StandardGRS”->“Standard_GRS”;
    • “StandardRAGRS”->“Standard_RAGRS”;
    • “StandardZRS”->“Standard_ZRS”;
    • “PremiumLRS”->“Premium_LRS”;
  • 在不指定 Kind 的情况下创建存储帐户时的默认服务行为已更改。 在以前的版本中,在不指定 Kind 的情况下创建存储帐户时,会使用存储帐户 Kind Storage,而在新版本中,StorageV2 是默认的 Kind 值。 如需创建 Kind 为“Storage”的 V1 存储帐户,请添加参数“-Kind Storage”

    示例:创建存储帐户(默认 Kind 更改)

    早于:

    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