Webサイトのコンテンツを提供するために使用される3つの異なるAzureStorage BLOBコンテナーがあります。1つは本番用、1つはステージング用、もう1つは開発用です。
私の目標は、ステージングと開発を毎日または毎週同期して、本番環境と一致させることです。
PowerShellで、原則として機能するものをまとめましたが、手間がかかり、手間がかかります。これには、ステージングコンテナと開発コンテナを削除してから、本番コンテナ全体を2回コピーすることが含まれます。わずか2万個のアイテムの場合、このプロセス全体に1時間以上かかります。
1週間で数百のアイテムしか変更されない可能性があることを考えると、デルタ操作ははるかに高速に実行される可能性があります。
Azure Storage BLOBコンテナー間でデルタコピーを実行できるツールまたはメソッドを見た人はいますか?私はおそらく自分のツールを書くことになるでしょうが、現在そこに何かがあるかどうかを見たかったのです。
今日、AzCopyツールを再検討しましたが、かなり長い道のりがあり、この目的を完全に果たしていることがわかりました。フラグはAzCopySyncであり、ターゲットに存在しない宛先ファイルの削除など、いくつかの制御オプションもあります。
おそらくAzureアーキテクチャまたはインフラストラクチャの改善により、この転送も非常に高速です。 60秒未満で10GBの初期同期を実行しました。以前は、これには1時間以上かかりました。
残念ながら、これを行うための良い方法はありません。すでに見てきたように、AZCopyのようなツールはファイルを移動しますが、デルタコピーや同期は行いません。
PowerShellを使用して、blobを実行し、それらが宛先に存在するかどうかを確認してから、変更された日付やファイルハッシュなどを比較することもできますが、残念ながら、それが特に高速になるとは思えません。
少し古い投稿だとは思いますが、出くわしてアイデアをポットに投げ込もうと思ったのですが、毎日/毎週実行する必要がある理由はありますか? BLOBストレージトリガーを備えたロジックアプリやBLOBトリガーを備えた関数のようなものを使用できますか?これは即座にトリガーされるため、ストレージアカウントは常に同期されます。
もう1つのオプションは、トリガーを使用してデルタをストレージアカウント/データベースに挿入し、変更を毎日/毎週まとめて処理することです。