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

如何在CosmosDBTrigger等触发器特性中配置非字符串类型参数值

非字符串类型Cosmos触发器参数配置方案

你不需要手动修改自动生成的function.json文件,只要将Microsoft.Azure.WebJobs.Extensions.CosmosDB扩展包升级到3.0.10及以上版本,即可直接用和字符串参数相同的%配置键%语法实现非字符串类型的参数配置,运行时会自动完成类型转换。

步骤1:修改触发器特性代码

将需要动态配置的数值/布尔参数值替换为%包裹的配置键名,示例如下:

[FunctionName("SomeFunction")]
public async Task Run(
    [CosmosDBTrigger(
        databaseName: "%CosmosDatabaseName%",
        collectionName: "%CosmosCollectionName%",
        ConnectionStringSetting = "CosmosConnectionString",
        CreateLeaseCollectionIfNotExists = true,
        LeaseCollectionName = "_leases",
        FeedPollDelay = "%FeedPollDelayMS%",
        MaxItemsPerInvocation = "%MaxItemsPerInvocation%",
        LeaseCollectionPrefix = "Leases_")]
    IReadOnlyList<Document> changedDocuments,
    ILogger log,
    [Blob("%BlobContainerName%", Connection = "BlobConn")]
    CloudBlobContainer destinationContainer)
{
    // 业务逻辑
}

步骤2:添加对应配置

本地开发环境

在local.settings.json的Values节点下添加对应键值对,数值直接写字符串形式即可:

{
  "Values": {
    "CosmosConnectionString": "你的Cosmos连接串",
    "BlobConn": "你的Blob存储连接串",
    "CosmosDatabaseName": "数据库名",
    "CosmosCollectionName": "集合名",
    "BlobContainerName": "Blob容器名",
    "FeedPollDelayMS": "20000",
    "MaxItemsPerInvocation": "20"
  }
}

Azure部署环境

直接在函数App的「配置」-「应用程序设置」中添加上述键值对即可,配置方式和字符串参数完全一致。

注意事项

  • 如果配置值无法转换为参数对应类型,函数启动阶段就会抛出明确的类型转换错误,可提前排查配置问题
  • 整个过程不需要修改自动生成的function.json文件,完全符合官方不建议手动修改该文件的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:54:01