Skip to content

Commit 436f629

Browse files
authored
Fix bug where deployment script gets stuck
1 parent de30e87 commit 436f629

File tree

1 file changed

+55
-14
lines changed

1 file changed

+55
-14
lines changed

articles/data-factory/continuous-integration-deployment.md

Lines changed: 55 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -770,19 +770,44 @@ $resources = $templateJson.resources
770770
771771
#Triggers
772772
Write-Host "Getting triggers"
773-
$triggersADF = Get-SortedTriggers -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName
774-
$triggersTemplate = $resources | Where-Object { $_.type -eq "Microsoft.DataFactory/factories/triggers" }
775-
$triggerNames = $triggersTemplate | ForEach-Object {$_.name.Substring(37, $_.name.Length-40)}
776-
$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)}
777-
$deletedtriggers = $triggersADF | Where-Object { $triggerNames -notcontains $_.Name }
778-
$triggerstostop = $triggerNames | where { ($triggersADF | Select-Object name).name -contains $_ }
773+
$triggersInTemplate = $resources | Where-Object { $_.type -eq "Microsoft.DataFactory/factories/triggers" }
774+
$triggerNamesInTemplate = $triggersInTemplate | ForEach-Object {$_.name.Substring(37, $_.name.Length-40)}
775+
776+
$triggersDeployed = Get-SortedTriggers -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName
777+
778+
$triggersToStop = $triggersDeployed | Where-Object { $triggerNamesInTemplate -contains $_.Name } | ForEach-Object {
779+
New-Object PSObject -Property @{
780+
Name = $_.Name
781+
TriggerType = $_.Properties.GetType().Name
782+
}
783+
}
784+
$triggersToDelete = $triggersDeployed | Where-Object { $triggerNamesInTemplate -notcontains $_.Name } | ForEach-Object {
785+
New-Object PSObject -Property @{
786+
Name = $_.Name
787+
TriggerType = $_.Properties.GetType().Name
788+
}
789+
}
790+
$triggersToStart = $triggersInTemplate | Where-Object { $_.properties.runtimeState -eq "Started" -and ($_.properties.pipelines.Count -gt 0 -or $_.properties.pipeline.pipelineReference -ne $null)} | ForEach-Object {
791+
New-Object PSObject -Property @{
792+
Name = $_.name.Substring(37, $_.name.Length-40)
793+
TriggerType = $_.Properties.type
794+
}
795+
}
779796
780797
if ($predeployment -eq $true) {
781798
#Stop all triggers
782-
Write-Host "Stopping deployed triggers"
783-
$triggerstostop | ForEach-Object {
784-
Write-host "Disabling trigger " $_
785-
Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_ -Force
799+
Write-Host "Stopping deployed triggers`n"
800+
$triggersToStop | ForEach-Object {
801+
if ($_.TriggerType -eq "BlobEventsTrigger") {
802+
Write-Host "Unsubscribing" $_.Name "from events"
803+
$status = Remove-AzDataFactoryV2TriggerSubscription -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name
804+
while ($status.Status -ne "Disabled"){
805+
Start-Sleep -s 15
806+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name
807+
}
808+
}
809+
Write-Host "Stopping trigger" $_.Name
810+
Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name -Force
786811
}
787812
}
788813
else {
@@ -819,10 +844,18 @@ else {
819844
820845
#Delete resources
821846
Write-Host "Deleting triggers"
822-
$deletedtriggers | ForEach-Object {
847+
$triggersToDelete | ForEach-Object {
823848
Write-Host "Deleting trigger " $_.Name
824849
$trig = Get-AzDataFactoryV2Trigger -name $_.Name -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName
825850
if ($trig.RuntimeState -eq "Started") {
851+
if ($_.TriggerType -eq "BlobEventsTrigger") {
852+
Write-Host "Unsubscribing trigger" $_.Name "from events"
853+
$status = Remove-AzDataFactoryV2TriggerSubscription -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name
854+
while ($status.Status -ne "Disabled"){
855+
Start-Sleep -s 15
856+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name
857+
}
858+
}
826859
Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name -Force
827860
}
828861
Remove-AzDataFactoryV2Trigger -Name $_.Name -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Force
@@ -873,9 +906,17 @@ else {
873906
874907
#Start active triggers - after cleanup efforts
875908
Write-Host "Starting active triggers"
876-
$activeTriggerNames | ForEach-Object {
877-
Write-host "Enabling trigger " $_
878-
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_ -Force
909+
$triggersToStart | ForEach-Object {
910+
if ($_.TriggerType -eq "BlobEventsTrigger") {
911+
Write-Host "Subscribing" $_.Name "to events"
912+
$status = Add-AzDataFactoryV2TriggerSubscription -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name
913+
while ($status.Status -ne "Enabled"){
914+
Start-Sleep -s 15
915+
$status = Get-AzDataFactoryV2TriggerSubscriptionStatus -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name
916+
}
917+
}
918+
Write-Host "Starting trigger" $_.Name
919+
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name -Force
879920
}
880921
}
881922
```

0 commit comments

Comments
 (0)