Отключение триггеров фабрики данных Azure при выпуске

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

Remove-AzureRmDataFactoryV2Trigger : HTTP Status Code: BadRequest
Error Code: TriggerEnabledCannotUpdate
Error Message: Cannot update enabled Trigger; it needs to be disabled first.
Request Id: <id number here>
Timestamp (Utc):06/17/2018 21:31:49
At line:1 char:1
+ Remove-AzureRmDataFactoryV2Trigger -ResourceGroupName "ResourceGroupName" -Data ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Remove-AzureRmDataFactoryV2Trigger], ErrorResponseException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.DataFactoryV2.RemoveAzureDataFactoryTriggerCommand

Я получаю эту ошибку, когда оба пытаюсь выполнить прямое развертывание, но также и при ручном запуске сценария PowerShell для удаления триггера

Remove-AzureRmDataFactoryV2Trigger -ResourceGroupName "ResourceGroupName" -DataFactoryName "DataFactoryName" -Name "TriggerName"

Я не могу найти способ отключить триггер через PowerShell или во время выпуска. Может ли кто-нибудь помочь мне найти способ обойти это? Без него я не могу выпускать выпуски непрерывной интеграции с фабрикой данных.

Спасибо


person DataNovice    schedule 17.06.2018    source источник


Ответы (1)


Вызовите Stop-AzureRmDataFactoryV2Trigger перед его удалением.

Обойти все определенные триггеры и установить значение переменной

$triggersADF = Get-AzureRmDataFactoryV2Trigger -DataFactoryName <DataFactoryName> -ResourceGroupName <ResourceGroupName>

Отключить все триггеры

$triggersADF | ForEach-Object { Stop-AzureRmDataFactoryV2Trigger -ResourceGroupName <ResourceGroupName> -DataFactoryName <DataFactoryName> -Name $_.name -Force }

повторно включить триггеры после развертывания

$triggersADF | ForEach-Object { Start-AzureRmDataFactoryV2Trigger -ResourceGroupName <ResourceGroupName> -DataFactoryName <DataFactoryName> -Name $_.name -Force }
person Fang Liu    schedule 18.06.2018
comment
Я только что нашел скрипт внизу этого страница, которая делает это за вас, а также выполняет итерацию по списку триггеров. Обратите внимание, что кто-то отметил проблему с кодом, который в настоящее время не работает, но предлагает альтернативу. - person DataNovice; 18.06.2018
comment
Вы можете получить только триггеры, которые не остановлены, применив фильтр в первой команде, например: | Где-Объект {$ _. RuntimeState -ne остановлен} - person Marlon Dias; 12.11.2020