@@ -770,19 +770,44 @@ $resources = $templateJson.resources
770
770
771
771
#Triggers
772
772
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
+ }
779
796
780
797
if ($predeployment -eq $true) {
781
798
#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
786
811
}
787
812
}
788
813
else {
@@ -819,10 +844,18 @@ else {
819
844
820
845
#Delete resources
821
846
Write-Host "Deleting triggers"
822
- $deletedtriggers | ForEach-Object {
847
+ $triggersToDelete | ForEach-Object {
823
848
Write-Host "Deleting trigger " $_.Name
824
849
$trig = Get-AzDataFactoryV2Trigger -name $_.Name -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName
825
850
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
+ }
826
859
Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.Name -Force
827
860
}
828
861
Remove-AzDataFactoryV2Trigger -Name $_.Name -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Force
@@ -873,9 +906,17 @@ else {
873
906
874
907
#Start active triggers - after cleanup efforts
875
908
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
879
920
}
880
921
}
881
922
```
0 commit comments