0

参考以下示例:

public static void Run([CosmosDBTrigger(
            databaseName: "ToDoItems",
            collectionName: "Items",
            ConnectionStringSetting = "CosmosDBConnection",
            LeaseCollectionName = "leases",
            CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents, 
            ILogger log)

我了解,connectionStringSetting 不是要使用的连接字符串,而是要查找的包含 ConnectionString 的设置的名称。

这也适用于 CollectionName 和 databasename 吗?我知道我可以尝试并弄清楚,但我对如何在构建时/部署时解决这个问题感到困惑?

我看到几个属性被分配了值,而其他属性则从配置中获取它们?它是 CosmosDBTrigger 的底层构造函数,它负责使用适当的值吗?

4

1 回答 1

0

绑定到函数是一种以声明方式将另一个资源连接到函数的方法;绑定可以作为输入绑定、输出绑定或两者连接。来自绑定的数据作为参数提供给函数。

这是使用 CosmosDB 触发器的 Azure 函数的小示例,当指定的数据库和集合中有插入或更新时调用该触发器。

using Microsoft.Azure.Documents;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;

namespace CosmosDBSamplesV2
{
    public static class CosmosTrigger
    {
        [FunctionName("CosmosTrigger")]
        public static void Run([CosmosDBTrigger(
            databaseName: "ToDoItems",
            collectionName: "Items",
            ConnectionStringSetting = "CosmosDBConnection",
            LeaseCollectionName = "leases",
            CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents, 
            ILogger log)
        {
            if (documents != null && documents.Count > 0)
            {
                log.LogInformation($"Documents modified: {documents.Count}");
                log.LogInformation($"First document Id: {documents[0].Id}");
            }
        }
    }
}

这是同一天蓝色函数的绑定信息,用于将参数值传递给函数

function.json 文件中的 Cosmos DB 触发器绑定

{
    "type": "cosmosDBTrigger",
    "name": "documents",
    "direction": "in",
    "leaseCollectionName": "leases",
    "connectionStringSetting": "<connection-app-setting>",
    "databaseName": "Tasks",
    "collectionName": "Items",
    "createLeaseCollectionIfNotExists": true
}

要回答您的问题 ,甚至在构建时/部署时如何解决这个问题”:- 要在本地使用它,我们在 host.json 文件和 local.settings.json 文件中传递相同的绑定信息。

这就是它通过检查参数名称在内部绑定信息的方式。

希望能帮助到你。

于 2019-03-11T11:00:41.047 回答