Как начать изменять все триггеры фабрики данных Azure - PullRequest
0 голосов
/ 22 октября 2019

Следующий код остановит все триггеры фабрики данных Azure:

$triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName

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

Однако то, что я думал, что перезапустит все триггеры, не работает:

$triggersADF | ForEach-Object { Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }

Iполучить следующую ошибку:

$triggersADF | ForEach-Object { Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
True
Start-AzDataFactoryV2Trigger : HTTP Status Code: BadRequest
Error Code: BadRequest
Error Message: Missing or invalid pipeline references for trigger Trigger_az4
Request Id: 08b0e51a-9a3d-4662-ba8c-8ea62279c558
Timestamp (Utc):10/21/2019 21:05:10
At line:3 char:33
+ ... ch-Object { Start-AzDataFactoryV2Trigger -ResourceGroupName $Resource ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Start-AzDataFactoryV2Trigger], CloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.DataFactoryV2.StartAzureDataFactoryTriggerCommand

Start-AzDataFactoryV2Trigger : HTTP Status Code: BadRequest
Error Code: BadRequest
Error Message: Missing or invalid pipeline references for trigger Trigger_c2l
Request Id: 86a0199d-5399-4079-abd4-7fe6973df222
Timestamp (Utc):10/21/2019 21:05:11
At line:3 char:33
+ ... ch-Object { Start-AzDataFactoryV2Trigger -ResourceGroupName $Resource ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Start-AzDataFactoryV2Trigger], CloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.DataFactoryV2.StartAzureDataFactoryTriggerCommand

Есть мысли о том, где я могу пойти не так?

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Чтобы остановить триггеры, вам нужно изменить задачу скрипта Azure Powershell Inline: на Preview 4, см. Изображение. enter image description here

Следующий код перезапустит триггеры:

#Triggers 

    $triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName 

$DataFactoryName -ResourceGroupName $ResourceGroupName
        $triggersTemplate = $resources | Where-Object { $_.type -eq "Microsoft.DataFactory/factories/triggers" }
        $triggerNames = $triggersTemplate | ForEach-Object {$_.name.Substring(37, $_.name.Length-40)}
        $activeTriggerNames = $triggersTemplate | Where-Object { $_.properties.runtimeState -eq "Started" -and ($_.properties.pipelines.Count -gt 0 -or $_.properties.pipeline.pipelineReference -ne $null)} | ForEach-Object {$_.name.Substring(37, $_.name.Length-40)}
        $deletedtriggers = $triggersADF | Where-Object { $triggerNames -notcontains $_.Name }
        $triggerstostop = $triggerNames | where { ($triggersADF | Select-Object name).name -contains $_ }


    if ($predeployment -eq $true) {
        Write-Host "Starting active triggers"
        $activeTriggerNames | ForEach-Object { 
            Write-host "Enabling trigger " $_
            Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_ -Force 
        }
    }

The answers came directly from Microsoft. The code can be found at the official site for CI/CD for Azure Data Factory here:
https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#update-active-triggers

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

0 голосов
/ 22 октября 2019

Кажется, проблема в шаблоне ARM, полезная нагрузка триггера имеет свойство, называемое конвейером. Для запланированного запуска это должны быть «конвейеры». Обратитесь к json триггера из пользовательского интерфейса, и вы увидите, что это должен быть массив конвейеров, а не один конвейер.

...