如何在Azure中插入行:CosmosDB表存储

时间:2017-10-24 09:06:16

标签: azure binding azure-cosmosdb

我正在尝试将记录插入Azure CosmosDB表存储中。我创建了一个Timer函数并将CosmosDB表存储集成到输出中。以下是功能。

#r "Microsoft.Azure.WebJobs.Extensions.DocumentDB"

using System;

public static People Run(TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    return new People() { 
            PartitionKey = "0020", 
            RowKey = "1034",  
            Team = "1010"
    };
}

public class People
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Team { get; set; }
}

我通过将函数与输出绑定集合为 Azure表存储来尝试相同的代码。它返回了状态:202已接受并插入了行。但是在 Azure CosmosDB表存储中,我获得了相同的状态,没有插入行。

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */1 * * * *"
    },
    {
      "type": "documentDB",
      "name": "$return",
      "databaseName": "TablesDB",
      "collectionName": "People",
      "createIfNotExists": false,
      "connection": "sb-leaderboard_DOCUMENTDB",
      "direction": "out"
    }
  ],
  "disabled": true
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您没有做错任何问题,问题是Azure Functions目前不支持Azure Cosmos DB Table API。

问题是表格对其文档(实体)使用自定义编码,而通用文档数据库绑定对此编码一无所知。因此,绑定很乐意编写您要求它编写的文档,但该文档不是表所使用的特殊编码。