【问题标题】:Copy a file from storage using Azure Resource Manager Template?使用 Azure 资源管理器模板从存储中复制文件?
【发布时间】:2016-04-05 16:08:02
【问题描述】:

我希望将文件从我的存储帐户复制到使用 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。

【问题讨论】:

  • 你能帮我澄清一下吗?所以你想在部署 VM 之前从存储中检索文件,以便它可以创建一个参数文件供部署本身使用?
  • 可以尝试使用 API Create link between resources 将存储资源链接到 VM,例如将扩展磁盘安装到 VM 上的文件系统?
  • 我测试了下面的答案,但发现仅仅改变我创建 docker 容器的方式最终是一个更清洁的解决方案。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 2020-06-25
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    相关资源
    最近更新 更多