Azure関数のスケーリングがDocument DBへの出力とどのように関係しているのか不思議です。Azure関数とドキュメントDB
基本的に、割り当てられたスループットを超えてDocument DBが429を返すとどうなりますか? Azure関数の最下位レベルがDocument DBの最下位レベルと組み合わされ、20秒で1000回の呼び出しが行われたとき、私はドキュメントデータベースコレクションに700〜800個の実際のドキュメントしか挿入されていなかったからです。同じ最下位のファンクションレベルでドキュメントDBをmaxにスケールアップしたとき、私はdocデータベースコレクションで700〜800のドキュメントしか受け取らなかった。しかし、私は関数をmaxにドキュメントDBを使って最大1000になるようにスケールアップしました。私がdoc dbを最小に落とすと、私は300ishしか得られませんでした....しかし、私はdocをロックしたようですdbアカウントをアップし、成功するまで挿入を再試行していることを確認します。
だから私はちょうどスケーリングと混乱していると私はいくつかの洞察力を得ることができるので、私は機能やアプリの様々な側面を調整することができます。
私は、サービス・バスは、C#でトリガーを信じていないので、私はhttp経由で機能をトリガするよそれが変更されているかもしれませんが(現在は機能していますこれは現時点で急速に変化しているため)。だから、私はHTTPを介してすべての1000をトリガーします。私は、このコードを実行するためにhttp postを起動するコード内でWeb APIのエンドポイントを呼び出すloader.ioを使用しています。 loader.ioテストは、20秒間に50要求/秒を実行するように設定されています。 – steveko23
関数が最終的に終了するかどうかはわかりません。私の最後のテストでは、それ以上のレコードは書かれていないようですが、doc dbコレクションと対話しようとしたときに429を取得していました。だから私は全体のコレクションを削除し、それを再作成し、コレクションに書き込まれた追加のレコードを見た。だから、それはまだ試みているように見えるだけでなく、それが奇妙な状態にあったように思われます。 – steveko23
まあ、今日の一連のテストの後、私は最後の変更でこのコードから実際の睡眠を取り除いたことに気づきました:https://github.com/Azure/azure-webjobs-sdk-extensions/commit/d39943965d45038ebddc7d4a2d729beab8a678ac #diff-6f209fbf17e36efd4d9ebc6a285cc00cL69私はこれを修正し、それが再び起こらないことを確認するいくつかのテストを追加します。この修正が利用可能になったときに私はここに書き戻します。以前と同じように動作することを確認するためにいくつかのテストを試してみましょう。これを持っていただきありがとうございます! – brettsam