CLI Azure для развертывания функции, без фатальной ошибки - PullRequest
1 голос
/ 19 апреля 2019

Я использую команду Azure CLI для развертывания кода функции из артефакта ZIPped.Вот код, ничего важного, только команда az и местоположение артефакта.

az functionapp deployment source config-zip -g $RGName -n $FnName --src "$(System.DefaultWorkingDirectory)/_Artifacts/drop/EventHubFunction.zip"

Однако, когда я использую это в конвейере, я получаю случайный несмертельный ошибка;т. е. конвейер выдает ошибку, но он продолжает молча, и функция развертывается.Мне просто любопытно узнать, что означает эта ошибка и что я могу сделать, чтобы избежать этого.Я сталкиваюсь с ошибкой:

2019-04-18T13: 00: 17.7925065Z ## [ошибка] ВНИМАНИЕ: Получение учетных данных сайта scm для развертывания zip

2019-04-18T13: 00: 20.7587414Z ## [ошибка] ПРЕДУПРЕЖДЕНИЕ: запуск zip-развертывания

2019-04-18T13: 00: 20.7633968Z ## [ошибка]

Обратите внимание, , я использую задачу Azure Powershell, использую логин z, используя принципала службы, а затем развертывание az functionapp.Я мог бы использовать задачу Azure CLI, которую я знаю, но моя логика немного сложнее для извлечения FnName, поскольку мне нужно выполнить цикл и развернуть несколько экземпляров функции, а задача Azure CLI не нравится foreach

1 Ответ

0 голосов
/ 24 апреля 2019

В обычных командах Powershell вы можете использовать CommonParameter -ErrorAction Stop. Но для команды AzureCli az я думаю, что вы можете использовать простой оператор if:

if (az login --service-principal -u $ClientId -p $ClientSecret --tenant $TenantId)
{
   "Success"
}
     else {"Error"}

Или проверить последнее состояние выхода, используя $? Автоматическая переменная после попытки входа в систему:

if (!$?) {"Error"}

аналогично и для развертывания функций, вы можете достичь этого. Также попробуйте использовать оператор --query, чтобы проверить, что вам нужно. Например,

# Create the Web App if it does not already exist
if(-Not (az webapp show --name $webAppName --resource-group $resourceGroupName))
{
    az webapp create --name $webAppName --resource-group $resourceGroupName --plan $servicePlanName --tags 'displayName=WebApp'
}

Надеюсь, это поможет.

...