Azure関数AppでdocumentDBを使用しています。私はJS内に基本的なHTTPtriggerを作成して、documentDBにエントリを格納(挿入)しました。Azure関数appでのDocumentDBの遅い書き込みパフォーマンス
収集のデータスループットは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);};
function appへのリクエスト(POST)ごとに、実際にはコレクションに値を格納して実行するのに30-40秒ほどかかります。また、並列要求の接続タイムアウトが発生します。
実行時間を短縮するためにdocumentDBまたはAzure関数アプリで使用できるパフォーマンス調整はありますか?
Function AppはdocumentDBをバックグラウンドでどのように処理しますか?ベストプラクティスを活用していますか?
他のNoSQLの一括挿入/更新操作には慣れていますが、documentDBには何も見つかりませんでした。
機能アプリでAzure Storageキューサービスを使用する方法はありますか? また、同時のdocumentDB書き込み操作にベンチマークや制限はありますか? – Vish
上記のキューバインディングを使用することをお勧めします。われわれはDocumentDBクライアントSDK上の単なる薄いレイヤーなので、潜在的な並行性の限界がある限り、DocumentDBのドキュメントを参照する必要があります。 – mathewc
Azureキューバインディングについて、サービスバスキューバインディングを使用する予定です。動作しますか? 1 MBの配列があり、メッセージサイズが256 KBであると書類が複数のドキュメントに分割されていると述べましたが、出力に複数の機能が必要ですか?私は関数がcontext.doneで出力をトリガすると思う – Vish