你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Az 2.0.0 迁移指南
本文档介绍了 Az 版本 1.0.0 和 2.0.0 之间的变更。
目录
模块中断性变更
Az.Compute
从
New-AzAvailabilitySet
和Update-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-AzHDInsightHttpServicesAccess
和Revoke-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
的情况下创建存储帐户时,会使用存储帐户 KindStorage
,而在新版本中,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