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

.NET Core环境下创建Azure Front Door Standard是否有可用SDK?

在.NET Core中编程创建Azure Front Door Standard实例的方案

针对你的需求,推荐使用Azure.ResourceManager.FrontDoor这个NuGet包——这是微软官方维护的新一代Azure资源管理SDK(ARM SDK),专门用于Front Door资源的生命周期管理,完全支持.NET Core,相比旧版的Microsoft.Azure.Management.FrontDoor,它基于Azure.Core库,API设计更简洁统一,是当前的最优选择。

实现步骤

  1. 安装依赖包
    你需要在项目中安装以下NuGet包:

    Install-Package Azure.ResourceManager
    Install-Package Azure.ResourceManager.FrontDoor
    Install-Package Azure.Identity
    
  2. 身份验证配置
    使用Azure服务主体(Service Principal)进行授权,你需要提前获取:

    • 租户ID(Tenant ID)
    • 客户端ID(Client ID)
    • 客户端密钥(Client Secret)
      或者在Azure托管环境(如App Service、VM)中使用托管标识,此时无需手动配置密钥,DefaultAzureCredential会自动获取凭证。
  3. 示例代码
    以下是创建Front Door Standard实例的核心代码,包含前端端点、后端池、路由规则的基础配置:

    using Azure.Identity;
    using Azure.ResourceManager;
    using Azure.ResourceManager.FrontDoor;
    using Azure.ResourceManager.FrontDoor.Models;
    using System;
    
    var tenantId = "你的租户ID";
    var clientId = "你的客户端ID";
    var clientSecret = "你的客户端密钥";
    var subscriptionId = "你的订阅ID";
    var resourceGroupName = "目标资源组名称";
    var frontDoorName = "全局唯一的Front Door名称";
    
    // 初始化ARM客户端
    var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    var armClient = new ArmClient(credential, subscriptionId);
    
    // 获取资源组对象(需确保资源组已存在,或提前创建)
    var resourceGroup = armClient.GetResourceGroupResource(new Azure.Core.ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"));
    
    // 构建Front Door创建参数
    var frontDoorData = new FrontDoorData(Azure.Core.AzureLocation.Global)
    {
        Sku = new FrontDoorSkuProperties(FrontDoorSkuName.Standard_1),
        FrontendEndpoints =
        {
            new FrontendEndpointProperties
            {
                Name = "默认前端端点",
                HostName = $"{frontDoorName}.azurefd.net"
            }
        },
        BackendPools =
        {
            new BackendPoolProperties
            {
                Name = "默认后端池",
                Backends =
                {
                    new BackendProperties
                    {
                        Address = "你的后端服务域名(如example.azurewebsites.net)",
                        HttpPort = 80,
                        HttpsPort = 443,
                        Priority = 1,
                        Weight = 50
                    }
                }
            }
        },
        RoutingRules =
        {
            new RoutingRuleProperties
            {
                Name = "默认路由规则",
                FrontendEndpoints = { new FrontendEndpointReference { Id = new Azure.Core.ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/默认前端端点") } },
                AcceptedProtocols = { FrontDoorProtocol.Http, FrontDoorProtocol.Https },
                PatternsToMatch = { "/*" },
                RouteConfiguration = new ForwardingConfiguration
                {
                    BackendPool = new BackendPoolReference { Id = new Azure.Core.ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/backendPools/默认后端池") },
                    ForwardingProtocol = FrontDoorForwardingProtocol.HttpsOnly
                }
            }
        }
    };
    
    // 创建Front Door实例
    var operation = await resourceGroup.GetFrontDoors().CreateOrUpdateAsync(Azure.WaitUntil.Completed, frontDoorName, frontDoorData);
    var frontDoor = operation.Value;
    
    Console.WriteLine($"Front Door实例已创建,ID:{frontDoor.Id}");
    

关键注意事项

  • 确保服务主体拥有Microsoft.Network/frontDoors/write权限(可通过Azure RBAC配置)
  • frontDoorName需全局唯一,因为对应的xxx.azurefd.net域名不能重复
  • 若资源组未提前创建,可通过armClient.GetResourceGroups().CreateOrUpdateAsync方法先创建资源组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:22:37