Я создал собственный модуль как класс PowerShell, примерно следуя инструкциям, доступным на Написание собственного ресурса DSC с классами PowerShell. Намерение состоит в том, чтобы подключиться к хранилищу файлов Azure и загрузить некоторые файлы. Я использую DSC службы автоматизации Azure в качестве опрашивающего сервера.
Позвольте мне начать с того, что при запуске через PowerShell ISE код работает очень хорошо. Что-то идет не так, когда я загружаю его в Azure - я получаю сообщение об ошибке Unable to find type [CloudFileDirectory]
. Этот спецификатор типа поступает из сборок, на которые имеется ссылка в модуле Azure.Storage
, который определенно входит в мой список средств автоматизации.
В верхней части моего psm1
файла у меня есть
Using namespace Microsoft.WindowsAzure.Storage.File
[DscResource()]
class tAzureStorageFileSync
{
...
# Create the search context
[CloudFileDirectory] GetBlobRoot()
{
...
}
...
}
Я не уверен, поддерживается ли этот Using
в данном сценарии или нет, поэтому назовем его вопросом 1.
На сегодняшний день я пробовал:
- Добавление
RequiredModules = @( "Azure.Storage" )
вpsd1
файл - Добавление
RequiredAssemblies = @( "Microsoft.WindowsAzure.Storage.dll" )
вpsd1
файл - Отправка фактического файла
Microsoft.WindowsAzure.Storage.dll
в корень загружаемого мною zip модуля (от которого ужасно пахнет)
Когда я развертываю модуль в Azure с New-AzureRmAutomationModule
, он отлично загружается и обрабатывается. Шаг Extracting activities...
работает и ошибок не выдает.
Однако, когда я компилирую конфигурацию, процесс компиляции завершается с ошибкой Unable to find type
, о которой я упоминал.
Я подумывал добавить Import-Module Azure.Storage
над объявлением class
, но никогда раньше не видел, чтобы это было сделано где-либо еще.
Вопрос 2. Можно ли выполнить локальную компиляцию, используя процесс, аналогичный тому, который используется в Azure DSC, чтобы быстрее протестировать изменения?
Вопрос 3. Кто-нибудь знает, что здесь не так?