2

我希望将文件从我的存储帐户复制到使用 ARM 模板创建的 VM?

我已经创建了存储帐户并将文件添加到存储帐户。我正忙于创建模板,但没有看到将文件从存储帐户复制到创建 VirtualMachine 时创建的 OSDisk 的任何选项。

更新 我觉得我应该提供一些我想要实现的背景:

  1. 我想创建 ARM deploy.json 和 parameters.json
  2. 使用上面的 JSON 我想使用 Azure Java SDK 在 Azure 中创建 VM
  3. 在 JSON 中,我将使用 docker 扩展来构建 docker 容器
  4. docker 容器将使用来自 DockerHub 的基础镜像,然后将使用 DockerExtension 支持的 compose 进行自定义
  5. 我需要从存储帐户复制某些文件,以便 Docker 扩展可以在构建自定义 docker 容器时将这些文件用作 docker compose 的一部分
  6. Java SDK 将根据用户输入做出某些决定,然后为 Azure Java SDK 生成 parameters.json

因此,基于此,我需要在 azure docker 扩展执行之前以某种方式将文件从存储复制到 VM。

4

2 回答 2

3

实现此目的的一种方法是使用添加到您的 VM 的自定义脚本扩展。它允许您在部署时运行在 VM 上运行的 powershell 脚本。在 Visual Studio 的 JSON 大纲窗口中,单击添加资源

添加资源

然后添加自定义脚本扩展并将其链接到 VM

添加自定义脚本扩展

这会将一个空白的 powershell 脚本添加到项目中新创建的自定义脚本文件夹中。在这里,您可以放置​​脚本以从 blob 下载文件。像这样

于 2016-04-05T16:22:19.090 回答
1

如果你想用 DSC 来做,这里有一个示例:https ://github.com/bmoore-msft/AzureRM-Samples/tree/master/VMDSCInstallFile 。不过,埃德的回答可能是一种更简单的方法。这里的关键是获取 VM 的凭据,以便能够从存储中提取。这意味着无论您使用的是 DSC 还是自定义脚本,您都需要获取脚本的位置/uri 和 sasToken(除非文件不安全)。上面的 DSC 示例将为您提供一种传递适用于任一工作流程的 uri/token 的方法。查看根目录中的 PS 脚本,了解如何创建 uri 和令牌并将其传递给模板部署。

于 2016-04-08T15:14:42.333 回答