AzureRM 5.7.0, ошибка при создании Azure Web App: Method not found
Столкнулся с ошибкой при создании нового Azure Web App с использованием AzureRM 5.7.0:
New-AzureRmWebApp : Method not found: 'System.String Microsoft.Azure.Management.WebSites.Models.Site.get_ResourceGroup()'.
Поиски решения показали, что я не первый, кто столкнулся с такой проблемой, но, к сожалению, рабочее решение никто не предложил. Можно было-бы обновить модуль AzureRM на более свежий, но не в моей ситуации. Поэтому пришлось найти обходное решение.
Важно - ошибка возникала только при запуске скрипта из TFS. Если этот же скрипт запустить на агенте локально, он отрабатывал корректно. Отличие в том, что TFS импортирует модуль с параметром -Global:
##[command]Import-Module -Name C:\Program Files\WindowsPowerShell\Modules\AzureRM\5.7.0\AzureRM.psd1 -Global
Если выполнить импорт AzureRM руками без параметра -Global, скрипт отрабатывает корректно. Но иначе получаем ошибку:
2019-04-08T10:47:14.5500155Z ##[error]Method not found: 'System.String Microsoft.Azure.Management.WebSites.Models.Site.get_ResourceGroup()'.
Решение нашлось довольно странное, но в моём случае рабочее.
1. Открываем в блокноте файл модуля AzureRM:
notepad "C:\Program Files\WindowsPowerShell\Modules\AzureRM\5.7.0\AzureRM.psm1"
2. Выносим три модуля в самый верх списка импорта, заодно убираем для них параметр "Global":
...
$PSDefaultParameterValues.Clear()
Set-StrictMode -Version Latest
Import-Module AzureRM.Websites -RequiredVersion 4.2.2
Import-Module AzureRM.Profile -RequiredVersion 5.8.3
Import-Module AzureRM.Resources -RequiredVersion 5.5.2
Import-Module Azure.Storage -RequiredVersion 4.2.1 -Global
Import-Module AzureRM.AnalysisServices -RequiredVersion 0.6.6 -Global
...
После этого задачи магическим образом начинают работать корректно. Просто убрать параметр Global не меняя последовательность импорта недостаточно, так как в файлах модулей может тоже находиться инструкция Import-Module.
Понятно, что это не решение проблемы, но для моего случая этот "костыль" оказался вполне приемлемым.
Комментариев нет:
Отправить комментарий