2017-08-08 6 views
1

プリコンパイルされたC#Azure関数で命令型バインディングを使用する場合、Cosmos DBデータベースとコレクション名をどのように定義しますか?プリコンパイルされたC#Azure関数で命令型バインディングを使用する場合、Cosmos DBデータベースとコレクション名をどのように定義しますか?

私はrun.csxのC#スクリプトの例Store unstructured data using Azure Functions and Cosmos DBに従っており、うまくいきます。

プリコンパイルされたC#関数と同様の処理を行い、生成されたfunction.jsonにデータベースとコレクション名がないことに気付きました。

DocumentDB ...

[HttpTrigger(
    AuthorizationLevel.Function, 
    "get", "post", 
    Route = null)] HttpRequestMessage req, 
[DocumentDB(
    ConnectionStringSetting = "cflogdev_DOCUMENTDB", 
    CreateIfNotExists = true, 
    PartitionKey = "user")] out object logDocument, 
ILogger log) 

に起因する方法を得たが、インテリセンスが設定可能な値として、データベースおよびコレクションを持っていない、しかし、それは彼らと過負荷を持っていた...

私はDocumentDBAttribute をチェックして、それを2番目のコンストラクタの一部として持っています。

どのように設定できますか?

答えて

0

これは私がMicrosoft.Azure.WebJobs.Extensions.DocumentDB

のバージョン1.0.0を使用しています...

public static HttpResponseMessage Run(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req, 
    [DocumentDB(
     "logDatabase", 
     "logCollection", 
     ConnectionStringSetting = "cflogdev_DOCUMENTDB", 
     //PartitionKey = "user", 
     CreateIfNotExists = true 
    )] out object logDocument, 
    ILogger log) 

それを解決

0

DocumentDBAttribute(databaseName, collectionName)コンストラクタは、私が使用するバージョン(1.1.0-beta1)で利用できます。これらのプロパティは読み取り専用なので、デフォルトコンストラクタから設定することはできません。