Скопировать файл из хранилища с помощью шаблона диспетчера ресурсов Azure?

Я хочу скопировать файл из моей учетной записи хранения на виртуальную машину, которая создается с использованием шаблона ARM?

Я уже создал учетную запись хранения и добавил файлы в учетную запись хранения. Я занят созданием шаблона, но не вижу возможности скопировать файлы из учетной записи хранения на OSDisk, который создается при создании VirtualMachine.

Обновление. Я считаю, что мне следует рассказать немного о том, чего я хочу достичь:

  1. Я хочу создать ARM deploy.json и parameters.json
  2. Используя указанный выше JSON, я хотел бы использовать Azure Java SDK для создания виртуальной машины в Azure.
  3. В JSON я буду использовать расширение докеров для создания контейнеров докеров.
  4. Контейнеры докеров будут использовать базовые образы из DockerHub, а затем будут настроены с использованием композиции, которая поддерживается в DockerExtension.
  5. Мне нужно скопировать определенные файлы из учетной записи хранения, чтобы расширение Docker могло использовать эти файлы как часть компоновки докеров при создании настраиваемых контейнеров докеров.
  6. Пакет SDK для Java примет определенные решения на основе данных, введенных пользователем, которые затем сгенерируют файл parameters.json для пакета SDK для Java Azure.

Поэтому, исходя из этого, мне нужно каким-то образом скопировать файлы из хранилища в виртуальную машину до того, как запустится расширение лазурного докера.


person aorticDefiance    schedule 05.04.2016    source источник
comment
Не могли бы вы прояснить это для меня. Итак, вы хотите получить файл из хранилища до развертывания виртуальной машины, чтобы он мог создать файл параметров для самого развертывания?   -  person Edward Rixon    schedule 08.04.2016
comment
Может попытаться использовать API Create link between resources, чтобы связать ресурс хранилища с виртуальной машиной, например монтировать расширенный диск в файловую систему на виртуальной машине?   -  person Peter Pan    schedule 12.04.2016
comment
Я проверил ответ ниже, но обнаружил, что простое изменение способа создания контейнеров докеров в конечном итоге является более чистым решением.   -  person aorticDefiance    schedule 12.04.2016


Ответы (2)


Если вы хотите сделать это с помощью DSC, вот пример: https://github.com/bmoore-msft/AzureRM-Samples/tree/master/VMDSCInstallFile. Хотя ответ Эда может быть более простым. Ключевым моментом здесь является получение учетных данных для виртуальной машины, чтобы иметь возможность извлекать данные из хранилища. Это означает, что независимо от того, используете ли вы DSC или настраиваемый сценарий, вам необходимо получить местоположение / uri и sasToken для сценария (если файлы не являются незащищенными). Пример DSC, приведенный выше, даст вам способ передать uri / токен, который будет работать в любом рабочем процессе. Посмотрите на сценарий PS в корне, чтобы увидеть, как uri и токен создаются и передаются в развертывание шаблона.

person bmoore-msft    schedule 08.04.2016
comment
Вот пример использования настраиваемого сценария для извлечения из URI хранилища - этот подход не требует, чтобы командлеты Azure были установлены на виртуальной машине. github.com/bmoore-msft/AzureRM-Samples/tree/master/ - person bmoore-msft; 08.04.2016

Один из способов добиться этого - использовать расширение Custom script, которое добавляется к вашей виртуальной машине. Он позволяет запускать сценарий PowerShell во время развертывания, который выполняется на виртуальной машине. В окне структуры JSON в Visual Studio щелкните добавить ресурс

добавить ресурс

Затем добавьте собственное расширение сценария и свяжите его с виртуальной машиной.

добавить собственное расширение скрипта

Это добавит пустой сценарий PowerShell во вновь созданную папку пользовательских сценариев в вашем проекте. Сюда можно поместить скрипт для скачивания файла из blob. Например, это.

person Edward Rixon    schedule 05.04.2016