具有CosmosDB输入的时间触发功能

时间:2019-08-22 06:49:38

标签: azure azure-functions azure-cosmosdb azure-cosmosdb-sqlapi

我在azure函数中创建了一个时间触发函数,并添加了CosmosDB输入,如下所示。

enter image description here

下面是.csx文件

#r "Microsoft.Azure.Documents.Client"

using System;
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;

public static async Task Run(TimerInfo myTimer, string[] inputDocument, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");

    // string [] = bindings.inputDocument;

    DocumentClient client;
}

如何将cosmosDb中的输入文档获取到此csx文件中?

我对C#不熟悉,在javascript中,我们将使用var Data = context.bindings.DataInput; 如何在C#中执行相同的操作?

1 个答案:

答案 0 :(得分:0)

您可以像下面的代码片段一样使用它

public static void Run(TimerInfo myTimer, IEnumerable<dynamic> documents)
    {
        foreach (var doc in documents)
        {
            // operate on each document
        }
    }

documentation

中的更多示例

评论中的问题

  

如果我们有多个宇宙Db输入,是否需要添加以下内容?

即使您有多个输入,也不会使用IEnumerable<dynamic> documents。您可以迭代该列表。

  

如果有cosmosDB输出,如何添加?

在此使用out object指向您的绑定。

public static void Run(string myQueueItem, out object employeeDocument, ILogger log)
    {
      log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");

      dynamic employee = JObject.Parse(myQueueItem);

      employeeDocument = new {
        id = employee.name + "-" + employee.employeeId,
        name = employee.name,
        employeeId = employee.employeeId,
        address = employee.address
      };
    }

有关Output的更多信息