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

如何在C# Azure Functions中添加标签并导入至Azure API Management?

在C# Azure Functions中添加标签并同步至Azure API Management

可以实现将C# Azure Functions中的标签同步到Azure API Management(APIM),主要有两种可行方案:

方案1:通过OpenAPI注释扩展直接定义标签

这是最直接的方式,借助Azure Functions的OpenAPI扩展给函数标记标签,导入APIM时会自动同步:

  1. 给Function项目安装Microsoft.Azure.WebJobs.Extensions.OpenApi NuGet包。
  2. 在HTTP触发的函数方法上,添加[SwaggerOperation]属性并指定Tags参数,示例代码如下:
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Attributes;
using Microsoft.AspNetCore.Http;
using Microsoft.OpenApi.Models;

public class OrderFunctions
{
    [FunctionName("CreateOrder")]
    [SwaggerOperation(
        Summary = "创建订单",
        Tags = new[] { "订单服务", "核心业务" } // 定义同步到APIM的标签
    )]
    [SwaggerResponse(StatusCodes.Status200OK, "订单创建成功")]
    public async Task<IActionResult> CreateOrder(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = "orders")] HttpRequest req)
    {
        // 函数业务逻辑
        return new OkObjectResult("订单已创建");
    }
}
  1. 部署Function App后,在APIM中选择从Function App导入API,选中你的Function App并指定使用其OpenAPI定义,导入完成后,函数对应的APIM操作会自动带上你定义的标签。

方案2:通过自定义属性+APIM导入规则映射标签

如果不想引入OpenAPI包,可以自定义属性标记函数,再通过APIM的导入规则将自定义属性映射为标签:

  1. 自定义一个标签属性:
[AttributeUsage(AttributeTargets.Method)]
public class FunctionTagAttribute : Attribute
{
    public string[] Tags { get; }

    public FunctionTagAttribute(params string[] tags)
    {
        Tags = tags;
    }
}
  1. 在函数上标记该属性:
[FunctionName("ProcessPayment")]
[FunctionTag("支付服务", "核心业务")]
public async Task<IActionResult> ProcessPayment(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = "payments")] HttpRequest req)
{
    // 函数业务逻辑
    return new OkObjectResult("支付处理完成");
}
  1. 在APIM导入Function App时,进入高级设置,配置导入规则,通过表达式提取函数的自定义属性值并映射为APIM操作的标签,例如使用表达式{{function.customProperties.FunctionTag}}获取标签值并赋值。

注意事项

  • 使用方案1时,可访问https://<your-function-app>.azurewebsites.net/api/openapi/v3.json查看生成的OpenAPI定义,确认标签已包含在内。
  • 后续函数更新后,重新导入APIM时,只要OpenAPI定义或自定义属性的标签未改变,APIM中的标签会自动保持同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:17:17