пятница, 27 июля 2018 г.

Azure PS Module AzureRM 5.7.0. Проблема с AzureRM.WebSites 4.2.2

На днях я столкнулся с проблемой, когда многократно проверенные скрипты для управления Microsoft Azure Web Apps упорно не захотели отрабатывать на стороне клиента. При этом с теми же входными данными великолепно отрабатывали у меня. Так как доступа к машине, на которой проблема воспроизводилась, у меня не было, пришлось действовать эмпирическим методом.


Начал я с того, что выяснил версию AzureRM клиента - 5.7.0. К сожалению, это ничего не дало - у меня с данной версией скрипты отрабатывали корректно. Потом я предложил добавить в скрипт строку, которая показывает версию загруженных модулей:

Get-Module | SELECT Version, name

Это показало, что модуль AzureRM импортирован с параметром Global:

Import-Module AzureRM -Global

Данные параметр указывает, что должны быть загружены так же все модули, которые прописаны в файле:

C:\Program Files\WindowsPowerShell\Modules\AzureRM\5.7.0\AzureRM.psm1

Он импортировал автоматически модуль AzureRM.WebSites 4.2.2.

Забегая вперед необходимо уточнить, что в скрипте использовался свойство DefaultHostName коммандлета Get-AzureRmWebApp. У меня использовались различные версии AzureRM и AzureRM.Website, но я решил проверить их вывод.

1.  AzureRM.Website 5.0.5:


2. AzureRM.Website 4.2.2:



2. AzureRM.Website 4.2.1:



Везде получили одинаковый результат. Получается вроде как тупик. Но попробуем теперь импортировать не отдельный модуль AzureRM.Website, а AzureRM, причем с параметром Global. И тут же мы отлавливаем баг на версии 5.7.0 (все другие версии отрабатывают корректно):


В чем же проблема, что AzureRM.WebSites 4.2.2 отдает разный результат для одной и той же команды? Экспериментально я установил, что она возникает только в случае импортирования модуля AzureRM 5.7.0 с параметром Global:

Import-Module AzureRM -RequiredVersion 5.7.0 -Global

С другими версиями модулей такой проблемы нет. Версии модулей, которые загружаются при импорте AzureRM.Websites и AzureRM  одинаковые:

AzureRM.profile 5.3.3
AzureRM.Websites  4.2.2

Исходя из описания класса "Site Class", свойство DefaultHostName должно присутствовать:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.websites.models.site?view=azure-dotnet

Я решил написать запрос в техническую поддержку Microsoft Azure. Посмотрим, смогут ли они мне помочь. Если у меня появится информация, я дополню статью.


Комментариев нет:

Отправить комментарий