2017-10-24 5 views
0

Azure CosmosDBテーブルストレージにレコードを挿入しようとしています。私はTimer関数を作成し、CosmosDBテーブルストレージを出力に統合しました。以下はその機能です。Azureに行を挿入する方法: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; } 
} 

Iは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

あなたは間違ったことはしていませんが、Azure関数は現在Azure Cosmos DB Table APIをサポートしていないという問題があります。

テーブルがドキュメント(エンティティ)にカスタムエンコーディングを使用し、汎用ドキュメントDBバインディングがこのエンコーディングについて何も知らないという問題があります。したがって、バインディングはあなたに書いてもらいたい書類を書くのがうれしいですが、その書類はテーブルが使用する特別なエンコーディングにはありません。

+0

ありがとうございます。私は人々をサポートするように話し、彼らは私にCosmosDB Tableの代わりにDocumentDBを使うように頼んだ。 Azure関数を使ってCosmosDBテーブルにエンティティを読み書きする他の方法はありますか? –

+1

テーブルからうまく読み込むことができるはずです。これは現時点ではサポートされていませんが、すぐに修正されるべきです。 –

関連する問題