2017-07-06 12 views
0

私は初心者です。AzureとHTTPトリガーNodeJSのAzure関数を使用しようとしています。 すでにNoSQLデータベースAzure Cosmosで。 例:私はCosmos Azure(NOSQL)のデータを、HTTPトリガーPOSTでAzure関数を使用して更新できます。

{ 
 
    ... 
 
    "shop":{ 
 
     "fruits":[ 
 
     "orange", 
 
     "strawberry", 
 
     "lemon" 
 
     ], 
 
     "clothes":[ 
 
     "man", 
 
     "woman", 
 
     "babies" 
 
     ] 
 
    } 
 
    ... 
 
}

それから私は、リンゴに果物配列という名前の新しいフルーツを追加、またはのうち、赤ちゃんを削除したいです。更新,どうすればいいですか? 見つかりましたcontext.bindingsです。しかし、私はまだそれを使用する方法を知らなかった 誰も私を助けることができますか?

多くのありがとうございます。

答えて

1

文書のnumフィールドをインクリメントするサンプル関数です。

{ 
    "bindings": [ 
    { 
     "authLevel": "function", 
     "type": "httpTrigger", 
     "direction": "in", 
     "name": "req", 
     "route": "HttpTriggerJSUpdateDocument/{docid}" 
    }, 
    { 
     "type": "http", 
     "direction": "out", 
     "name": "res" 
    }, 
    { 
     "type": "documentDB", 
     "name": "inputDocument", 
     "databaseName": "MyDB", 
     "collectionName": "MyCollection", 
     "id": "{docid}", 
     "connection": "mydocdb_DOCUMENTDB", 
     "direction": "in" 
    }, 
    { 
     "type": "documentDB", 
     "name": "outputDocument", 
     "databaseName": "MyDB", 
     "collectionName": "MyCollection", 
     "createIfNotExists": false, 
     "connection": "mydocdb_DOCUMENTDB", 
     "direction": "out" 
    } 
    ], 
    "disabled": false 
} 

index.js

function.json

module.exports = function (context, req) { 
    let inputDocument = context.bindings.inputDocument; 
    context.log('JavaScript HTTP trigger, current value: ' + 
     (inputDocument && inputDocument.num)); 

    inputDocument.num = inputDocument.num + 1; 

    context.bindings.outputDocument = inputDocument; 

    context.res = { 
     body: 'Result is ' + inputDocument.num 
    }; 
    context.done(); 
}; 
+0

ありがとうございました! @Mikkail – JViM

0
using System.Net; 

public static HttpResponseMessage Run(HttpRequestMessage req, out object taskDocument, TraceWriter log) 
{ 
    string name = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0) 
     .Value; 

    string task = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "task", true) == 0) 
     .Value; 

    string duedate = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "duedate", true) == 0) 
     .Value; 

    taskDocument = new { 
     name = name, 
     duedate = duedate.ToString(), 
     task = task 
    }; 

    if (name != "" && task != "") { 
     return req.CreateResponse(HttpStatusCode.OK); 
    } 
    else { 
     return req.CreateResponse(HttpStatusCode.BadRequest); 
    } 
} 

とfunction.jsonタスクのための代わりに名前をcoresponding

{ 
    "bindings": [ 
    { 
     "authLevel": "function", 
     "name": "req", 
     "type": "httpTrigger", 
     "direction": "in" 
    }, 
    { 
     "name": "$return", 
     "type": "http", 
     "direction": "out" 
    }, 
    { 
     "type": "documentDB", 
     "name": "taskDocument", 
     "databaseName": "taskDatabase", 
     "collectionName": "TaskCollection", 
     "createIfNotExists": true, 
     "connection": "DOCUMENTDB", 
     "direction": "out" 
    } 
    ], 
    "disabled": false 
} 

使用。

関連する問題