如何通过C# Resource Manager获取Azure Functions可用托管计划
获取Azure Function可用托管计划的C# .NET Core实现
要通过C# .NET Core动态获取Azure Function的可用托管计划选项,无需硬编码,可借助Azure Resource Manager (ARM) SDK中的ArmClient结合Azure.ResourceManager.Functions包实现:
依赖准备
确保项目已安装匹配版本的NuGet包:Azure.ResourceManager.Functions核心代码实现
利用ArmClient获取指定订阅、区域下的Function App可用SKU,这些SKU直接对应创建时的托管计划选项:using Azure.ResourceManager.Functions; using Azure.ResourceManager.Resources; using System.Linq; using System.Threading.Tasks; public async Task<List<HostingPlanOption>> GetFunctionHostingPlansAsync(ArmClient armClient, string subscriptionId, string location) { // 获取订阅资源 var subscriptionResource = armClient.GetSubscriptionResource(new ResourceIdentifier($"/subscriptions/{subscriptionId}")); await subscriptionResource.GetAsync(); // 获取指定区域的Function App可用SKU var skuCollection = await subscriptionResource.GetFunctionAppSkusAsync(location).ToListAsync(); // 转换为前端绑定下拉框的格式 return skuCollection.Select(sku => new HostingPlanOption { PlanId = sku.Name, DisplayName = sku.DisplayName, Tier = sku.Tier }).ToList(); } // 自定义模型用于传递选项数据 public class HostingPlanOption { public string PlanId { get; set; } public string DisplayName { get; set; } public string Tier { get; set; } }托管计划与SKU对应关系
返回的SKU数据中,对应常见托管计划的标识:- Consumption计划:SKU名称
Y1,Tier为Dynamic - Flex Consumption计划:SKU名称
Y2,Tier为Dynamic - Functions Premium计划:SKU名称
EP1/EP2/EP3,Tier为ElasticPremium
可根据
Tier或DisplayName对结果分组,匹配Azure门户的选项展示逻辑。- Consumption计划:SKU名称
注意事项
- 需确保
ArmClient已通过服务主体、Azure CLI等方式完成授权 - 不同区域的可用SKU可能存在差异,需指定目标部署区域查询
- 需确保
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

