我正在使用Azure函數應用程序使用documentDB。我在JS中創建了一個基本的HTTPtrigger,用於在documentDB中存儲(插入)條目。DocumentDB使用Azure函數應用程序緩慢寫入性能
收集的數據吞吐量設置爲2500(RU)。
這裏req.body是一個數組,req.body.length大約是2500個對象,導致1 MB的大小,我相信它相當小。
module.exports = function (context, req) {
context.bindings.document = [];
if (req.body) {
//if(req.body instanceof Array){context.log("It is an array");}
context.bindings.document = req.body; // here document is function app parameter
res = {status: 200};
}
else {
res = {
status: 400,
body: "Pass Parameters"
};
}
context.done(null, res);};
對於每一個請求(POST)的功能的應用程序,它需要AVG各地30-40s執行和值存儲在集合,這是很長的。它會導致並行請求的連接超時。
是否有任何性能調整可以用於documentDB或Azure函數應用程序來降低執行時間?
Function App如何在後臺處理documentDB?它是利用最佳做法嗎?
我熟悉其他NoSQL中的批量插入/更新操作,但找不到documentDB的任何內容。
如何使用功能應用程序的Azure存儲隊列服務? 另外,是否有任何基準或限制的併發documentDB寫操作? – Vish
我建議使用上面的隊列綁定 - 請參閱鏈接。我們只是DocumentDB客戶端SDK的一個薄層,因此就潛在的併發限制而言,您應該看到DocumentDB文檔。 – mathewc
關於Azure隊列綁定,我計劃使用Service Bus隊列綁定,它會起作用嗎? 我有一個1 MB大小的數組和文件說消息大小應該是256 KB,你提到將數組分割成多個文檔,但是在輸出中是否需要多個函數?因爲我認爲函數在context.done上觸發輸出 – Vish