DevOps 上的 ADF Pipeline 触发器部署
ADF Pipeline trigger deployment on DevOps
我正在执行一些从我的 adf-dev 到 adf-staging 环境的初始 ADF 部署。在 MS 文档中它说:
如果您尝试更新活动触发器,部署可能会失败。要更新活动触发器,您需要手动停止它们,然后在部署后重新启动它们。
这是否意味着我需要关闭我的开发或暂存触发器 pre/post 部署?
第2期。我需要在开发(星期六)与暂存(星期日)的不同日期将同一组触发器安排到 运行。我是否需要为每个环境制作一组单独的触发器,或者我是否可以在部署期间为现有触发器重写触发器计划?
您需要在开始部署之前停止暂存触发器,并在部署完成后重新启动。
此页面有一个用于停止触发器的 PowerShell 脚本:https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#updating-active-triggers
您也可以使用自定义 petameters 配置文件来更新您的触发器设置:https://docs.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
属性。
在 运行 ADFUtilities 导出功能之后:
npm run build export c:\git\adf /subscriptions/<subscriptionid>/resourceGroups/datafactorydev/providers/Microsoft.DataFactory/factories/<datafactory_name> "ArmTemplate"
您现在可以获取触发器属性的 arm 模板,参数化如下:
... {
"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')]"
}
}
}
}, ...
参数文件 ArmTemplate\ARMTemplateParametersForFactory.json
如下所示:
{
"$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
的数组值,为一周中不同日期的开发和暂存创建不同的参数文件
我正在执行一些从我的 adf-dev 到 adf-staging 环境的初始 ADF 部署。在 MS 文档中它说:
如果您尝试更新活动触发器,部署可能会失败。要更新活动触发器,您需要手动停止它们,然后在部署后重新启动它们。
这是否意味着我需要关闭我的开发或暂存触发器 pre/post 部署?
第2期。我需要在开发(星期六)与暂存(星期日)的不同日期将同一组触发器安排到 运行。我是否需要为每个环境制作一组单独的触发器,或者我是否可以在部署期间为现有触发器重写触发器计划?
您需要在开始部署之前停止暂存触发器,并在部署完成后重新启动。
此页面有一个用于停止触发器的 PowerShell 脚本:https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#updating-active-triggers
您也可以使用自定义 petameters 配置文件来更新您的触发器设置:https://docs.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
属性。
在 运行 ADFUtilities 导出功能之后:
npm run build export c:\git\adf /subscriptions/<subscriptionid>/resourceGroups/datafactorydev/providers/Microsoft.DataFactory/factories/<datafactory_name> "ArmTemplate"
您现在可以获取触发器属性的 arm 模板,参数化如下:
... {
"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')]"
}
}
}
}, ...
参数文件 ArmTemplate\ARMTemplateParametersForFactory.json
如下所示:
{
"$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