如何通过PowerShell/SDK/REST API获取启用Azure机密计算的VM SKU列表?
获取启用机密计算的Azure VM SKU的编程方法
PowerShell 实现
使用Get-AzComputeResourceSku命令可获取带功能特性标记的SKU列表,通过筛选ConfidentialComputeEnabled特性为True的条目,就能得到指定区域内启用机密计算的VM SKU:
# 替换为目标区域,比如"East US" $targetLocation = "West US" Get-AzComputeResourceSku | Where-Object { $_.Locations -contains $targetLocation -and $_.ResourceType -eq "virtualMachines" -and ($_.Capabilities | Where-Object { $_.Name -eq "ConfidentialComputeEnabled" -and $_.Value -eq "True" }) } | Select-Object Name, Locations, Capabilities
该命令会返回符合条件的SKU名称、支持区域及相关特性信息。
C# SDK 实现
使用Azure管理库Azure.ResourceManager.Compute(最新稳定版),可通过以下代码获取目标区域的机密计算SKU:
using Azure.Core; using Azure.Identity; using Azure.ResourceManager.Compute; using Azure.ResourceManager.Compute.Models; var subscriptionId = "你的订阅ID"; var location = "West US"; var credential = new DefaultAzureCredential(); var computeClient = new ComputeManagementClient(credential, subscriptionId); var skus = await computeClient.VirtualMachineSkus.ListAsync(location); foreach (var sku in skus) { var confidentialCapability = sku.Capabilities.FirstOrDefault(c => c.Name == "ConfidentialComputeEnabled"); if (confidentialCapability != null && confidentialCapability.Value == "True") { Console.WriteLine($"SKU名称: {sku.Name}"); // 可按需输出更多属性,比如核心数、内存等 } }
注意:需先通过NuGet安装Azure.ResourceManager.Compute和Azure.Identity包。
REST API 实现
调用Azure Compute REST API的VM SKU列表接口,在响应结果中筛选特性标记:
请求URL:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSkus?api-version=2023-07-01
请求需携带有效的Azure AD访问令牌。返回的JSON响应中,遍历value数组,筛选capabilities数组中存在{"name": "ConfidentialComputeEnabled", "value": "True"}的条目,即为启用机密计算的VM SKU。
内容的提问来源于stack exchange,提问作者greg
相关产品推荐
相关产品推荐

