Logic Appsが生成するファイルの種類ごとに次の番号を生成する必要があります。私のロジックアプリは、WMSと顧客のERPの間でいくつかの変換を行っています。問題は、お客様がファイルに配置するシーケンス番号を生成して維持するように要求していることです。要件の完全なリストは次のとおりです。
これを行うには、Azure関数を作成する必要があることを知っています。これは、1つのパラメーター「fileType」を受け入れて、返すシーケンス番号を決定します。また、現在の数値を「どこかに」格納する必要があることと、Azure関数自体またはデータベース/ファイル(ロックによる)が本質的に悲観的である必要があることも知っています。コストの観点から、このシナリオに最適なAzureストレージオプションや、そのテクノロジーの決定で使用するロック/リリースを確認することはできません。私には、データベースを使用して3つの数値を格納するのはやり過ぎのように思えます。
他の人が興味を持っている場合は、HOT設定のコンテナーを使用してAzure Blob Storageを使用することにしました。テストではうまく機能するようです。まだライブは行っていません。
.NETコードは、StorageInfo、CloudBlobClient、CloudBlobContainer、およびCloudBlockBlobクラスを使用します。また、CloudBlockBlobへの参照を取得するために、LockingEntityルーチンを「ロックまたは解放を待機」するように調整する必要がありました。
楽しい質問-インタビューの質問のように聞こえます。
なんらかの永続化が必要になります。どちらでもかまいません。私はこれを行います:
クラッシュした場合、ギャップが生じますが、すべての呼び出しで同期I/Oを実行する必要はありません。