Azure 関数を使用してスケーリングがどのように機能するかを理解しようとしています。ストレージ キューに 88 個のメッセージを生成するアプリでテストしており、これにより関数がトリガーされます。関数は c# で記述されています。この関数はファイルをダウンロードし、そのファイルに対して何らかの処理を実行します (最終的にはポストバックしますが、テスト目的ではまだ行っていません)。この関数は、リクエストごとに完了するまでに約 30 秒かかります (合計約 2500 秒の処理)。テスト目的で、これを 10 回ループします。
私たちの理想的な状況は、ある程度のウォームアップの後、Azure が関数を自動的にスケールアップして、最も適切な方法でメッセージを処理することです。スピンアップ時間などを考慮して、ある種のアルゴリズムを使用します。または、何らかの上限を使用して、バックログ内のメッセージ数までスケールアップします。
これはどのように機能するはずですか?「消費単位」が 7 を超えたことは一度もありません。通常、メッセージのキューを処理するには約 45 分かかります。
再スケーラビリティに関する他のいくつかの質問... 私たちの関数はメモリ集約型の操作です。メモリは関数のスケーリングされたインスタンス間でどのように「共有」されますか? 通常は見られないメモリ不足エラーが発生しているため、お尋ねします。関数の最大メモリ (1536MB) を構成しました。操作の約 2.5% がメモリ不足エラーで失敗している
事前に感謝します。EC2 上の専用の Windows VM から Azure 関数に多くの作業を移動できるようになるため、これをうまく機能させたいと考えています。