DevOps上的ADF管道触发部署



我正在从我的ADF-dev到ADF-staging环境进行一些初步的ADF部署。在MS文档中,它说:

如果尝试更新活动触发器,部署可能会失败。要更新活动触发器,需要手动停止它们,然后在部署后重新启动它们

这是否意味着我需要在部署前/部署后关闭dev或staging触发器?

第2期。我需要在dev(sat(和staging(sun(中安排同一组触发器在不同的日子运行。那么我需要为每个环境制作一组单独的触发器吗?或者我可以在部署期间重写现有触发器的触发器时间表吗?

您需要在启动部署之前停止您的暂存触发器,并在部署完成后重新启动。

此页面具有用于停止触发器的PowerShell脚本:https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#updating-激活触发

此外,您还可以使用自定义PB配置文件来更新触发器设置:https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#triggers

要在Arm模板中参数化触发器部署,首先是在特定日期运行的每周触发器示例:

{
"name": "OnceAWeekTrigger",
"properties": {
"annotations": [],
"runtimeState": "Stopped",
"pipelines": [],
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Week",
"interval": 1,
"startTime": "2021-05-25T22:59:00Z",
"timeZone": "UTC",
"schedule": {
"weekDays": [
"Sunday"
]
}
}
}
}
}

创建一个arm-template-parameters-definition.json文件如下:

{
"Microsoft.DataFactory/factories/triggers": {
"properties": {
"typeProperties": {
"recurrence": {
"schedule": {
"weekDays": "=:-weekDays:array"
}
}
}
}
}
}

该文件指定您要对schedule_weekDays属性进行prarametrise。

运行ADFUtilities导出功能后:

npm run build export c:gitadf /subscriptions/<subscriptionid>/resourceGroups/datafactorydev/providers/Microsoft.DataFactory/factories/<datafactory_name> "ArmTemplate"

现在,您可以获得触发器属性的手臂模板参数化如下:

...  {
"name": "[concat(parameters('factoryName'), '/OnceAWeekTrigger')]",
"type": "Microsoft.DataFactory/factories/triggers",
"apiVersion": "2018-06-01",
"properties": {
"annotations": [],
"runtimeState": "Stopped",
"pipelines": [],
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Week",
"interval": 1,
"startTime": "2021-05-25T22:59:00Z",
"timeZone": "UTC",
"schedule": {
"weekDays": "[parameters('OnceAWeekTrigger_weekDays')]"
}
}
}
}, ...

并且参数文件CCD_ 3看起来如下:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"factoryName": {
"value": "factory_name"
},
"OnceAWeekTrigger_weekDays": {
"value": [
"Sunday"
]
}
}
}

然后,通过修改OnceAWeekTrigger_weekDays的数组值,可以在一周中的不同日子为dev和staging创建不同的参数文件

最新更新