You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C# Resource Manager获取Azure Functions可用托管计划

获取Azure Function可用托管计划的C# .NET Core实现

要通过C# .NET Core动态获取Azure Function的可用托管计划选项,无需硬编码,可借助Azure Resource Manager (ARM) SDK中的ArmClient结合Azure.ResourceManager.Functions包实现:

  1. 依赖准备
    确保项目已安装匹配版本的NuGet包:Azure.ResourceManager.Functions

  2. 核心代码实现
    利用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; }
    }
    
  3. 托管计划与SKU对应关系
    返回的SKU数据中,对应常见托管计划的标识:

    • Consumption计划:SKU名称Y1,Tier为Dynamic
    • Flex Consumption计划:SKU名称Y2,Tier为Dynamic
    • Functions Premium计划:SKU名称EP1/EP2/EP3,Tier为ElasticPremium

    可根据Tier或DisplayName对结果分组,匹配Azure门户的选项展示逻辑。

  4. 注意事项

    • 需确保ArmClient已通过服务主体、Azure CLI等方式完成授权
    • 不同区域的可用SKU可能存在差异,需指定目标部署区域查询

内容的提问来源于stack exchange,提问作者Amit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 19:17:12