使用Azure Resource Manager模板从存储中复制文件?

时间:2016-04-05 16:08:03

标签: java azure azure-resource-manager arm-template

我希望将文件从我的存储帐户复制到使用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 Extension可以在构建自定义docker容器时将这些文件用作docker compose的一部分
  6. Java SDK将根据用户输入做出某些决定,然后生成Azure Java SDK的parameters.json
  7. 基于此,我需要以某种方式将文件从存储器复制到VM,然后执行azure docker扩展。

2 个答案:

答案 0 :(得分:3)

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

add resource

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

add a custom script extension

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

答案 1 :(得分:1)

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