現在、ブロブ ストレージからロールにファイルをプルし、これもブロブ ストレージにあるバッチ スクリプトを介して操作することにより、Azure ワーカー ロールへのアプリケーションのデプロイを自動化しようとしています。これを達成するために onStart を使用しています。これが私の onStart メソッドの縮小版です。
ファイルをプルダウンする準備をします:
public override bool OnStart()
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
container.CreateIfNotExist();
CloudBlob file = container.GetBlobReference("file.bat");
実際にファイルをロールに入れる:
LocalResource localResource = RoleEnvironment.GetLocalResource("localStore");
string filePath = System.IO.Path.Combine(localResource.RootPath, "file.bat");
using (var fileStream = System.IO.File.OpenWrite(@filePath))
{
file.DownloadToStream(fileStream);
}
これは、バッチ ファイルと依存関係をロールに取得する方法です。私の問題は、もともと、他のファイルがすぐにドロップされるという前提でバッチファイルを作成したことですC:\
。例 - C:\installer.exe
、C:\archive.zip
など。ただし、ファイルは localStorage にあります。
私は、A) スクリプト onStart を動的に記述して localStorage がどこにあるかをバッチ ファイルに何らかの方法で伝えるか、B) localStorage を使用するように変更できると考えていますC:\
。
どちらを行うか、またはここで行う最善の方法がわかりません。考え?