【问题标题】:Automating App Deployment in Azure with LocalResource使用 LocalResource 在 Azure 中自动部署应用程序
【发布时间】:2012-08-06 06:12:21
【问题描述】:

我目前正在尝试通过将文件从 blob 存储中拉入角色并通过批处理脚本(也位于 blob 存储中)使用它来自动将应用程序部署到 Azure Worker 角色。我正在使用 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.exeC:\archive.zip 等。但现在文件在 localStorage 中。

我想我可以 A) 通过动态编写脚本 onStart 以某种方式告诉批处理文件 localStorage 在哪里,或者 B) 将 localStorage 更改为使用 C:\

我也不知道该怎么做,或者在这里做的最好的事情是什么。想法?

【问题讨论】:

  • 另一种可能性是将路径传递到本地存储作为批处理文件的输入。例如如果我有一个名为 mycmd.bat 的批处理文件,如下所示: ============= ECHO %1 ============= 如果我调用 mycmd.bat “C:\Program Files”,它只会在控制台上打印“C:\Program Files”。

标签: azure azure-storage azure-blob-storage azure-worker-roles


【解决方案1】:

我不会将 LocalStorage 更改为使用 C:(无论如何你会怎么做?)。看看史蒂夫的博文:Using a Local Storage Resource From a Startup Task。他解释了如何使用 powershell 获取 LocalResource(甚至从批处理文件中调用该脚本)。

为什么不使用Windows Azure Bootstrapper?这是一个小工具,可以帮助您配置角色,而无需编写任何代码,您只需从启动任务中调用它,它就可以下载文件(也可以像您正在做的那样从 blob 存储中下载文件),使用本地资源,...

bootstrapper.exe -get http://download.microsoft.com/download/F/3/1/F31EF055-3C46-4E35-AB7B-3261A303A3B6/AspNetMVC3ToolsUpdateSetup.exe -lr $lr(temp) -run $lr(temp)\AspNetMVC3ToolsUpdateSetup.exe -args /q 

注意:不要在批处理文件中使用绝对引用,而是使用 %~dp0 使其使用相对路径

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-25
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2011-09-26
    • 2020-05-25
    相关资源
    最近更新 更多