微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 CLI 停止所有 Azure 数据工厂触发器 对于 Windows:对于 Windows:

如何解决通过 CLI 停止所有 Azure 数据工厂触发器 对于 Windows:对于 Windows:

我正在尝试通过 Azure CLI 部署 ARM 模板,如下所示:

az deployment group create --name APP-ADF-Template --resource-group <my-resource-group> --template-file ./pipelines/app_arm.json --parameters ./pipelines/app_stage_arm_params.json

但是当任何触发器处于 Start 状态时会出现错误

ERROR: Deployment Failed. Correlation ID: 10c0ee19-1452-41ce-8edd-4ecf33499f25. {
  "error": {
    "code": "TriggerEnabledCannotUpdate","message": "Cannot update enabled Trigger; the trigger needs to be disabled first. ","target": null,"details": null
  }
}

我们可以用下面的命令一个一个地停止触发器。

az datafactory trigger stop --factory-name <my-data-factory> --resource-group <my-resource-group> --trigger-name <my-trigger-1>

像这样我们有10多个触发器,很难一一阻止。有没有办法一次性停止所有这些,并在部署成功后启动所有这些?

解决方法

没有办法一次性停止所有触发器,在这种情况下,您可以选择使用循环。

停止所有触发器:

对于 Windows:

$names = az datafactory trigger list --factory-name "xxx" --resource-group "xxx" --query "[?properties.runtimeState=='Started'].name" -o tsv --only-show-errors
foreach($name in $names){
    az datafactory trigger stop --factory-name "xxx" --resource-group "xxx" --name $name --only-show-errors
}

对于 Unix

names=`az datafactory trigger list --factory-name "xxx" --resource-group "xxx" --query "[?properties.runtimeState == 'Started'].name" -o tsv --only-show-errors`
                    
for name in ${names[@]}; 
do
    echo "Stopping the trigger : ${name}"
    az datafactory trigger stop --factory-name "xxx" --resource-group "xxx" --name ${name} --only-show-errors
done

部署完成后,启动所有触发器:

对于 Windows:

$names = az datafactory trigger list --factory-name "xxx" --resource-group "xxx" --query "[?properties.runtimeState=='Stopped'].name" -o tsv --only-show-errors
foreach($name in $names){
    az datafactory trigger start --factory-name "xxx" --resource-group "xxx" --name $name --only-show-errors
}

对于 Unix

names=`az datafactory trigger list --factory-name "xxx" --resource-group "xxx" --query "[?properties.runtimeState == 'Stopped'].name" -o tsv --only-show-errors`
                    
for name in ${names[@]}; 
do
    echo "Starting the trigger : ${name}"
    az datafactory trigger start --factory-name "xxx" --resource-group "xxx" --name ${name} --only-show-errors
done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。