我正在从我的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创建不同的参数文件