ADF启用Git管理后,使用PublishADFTask发布新触发器启动失败
我们的Azure Data Factory(ADF)已启用Git管理,且禁用了ADF自带的发布选项,仅允许通过SQLPlayer.DataFactoryTools.PublishADF.PublishADFTask@2执行发布操作。在包含新创建的BlobEventsTrigger的分支上执行发布步骤时,出现触发器启动失败错误(手动触发管道一切正常),具体错误信息如下:
=================================================================================== STEP: Starting triggers... TriggerStartMethod = BasedOnSourceCode The number of triggers to start: 1 Starting triggers: - Enabling trigger: my_trigger Failed starting trigger after 5 attempts. ##[warning]HTTP Status Code: BadRequest Error Code: BadRequest Error Message: Entity my_trigger not found Request Id: xxxx-xxx-xxxx-xxx-xxxx Timestamp (Utc):08/22/2024 14:21:57 Complete starting triggers. ==============================================================================
以下是针对性的排查和解决步骤:
检查触发器ARM模板的发布完整性
确认分支中/triggers目录下的my_trigger定义JSON文件配置完整,且该文件被纳入发布任务的构建范围。查看发布任务日志,验证触发器的ARM模板是否成功生成并部署到目标ADF实例。验证触发器名称的一致性
ADF中触发器名称大小写敏感,检查发布任务配置中指定的触发器名称与源代码中的名称完全一致,避免大小写、特殊字符的差异导致匹配失败。排查目标ADF实例的触发器状态
登录ADF门户,检查目标环境中是否存在同名触发器的残留元数据,或是否有名称近似的触发器导致冲突。可临时手动创建同名触发器后重新执行发布,验证是否能覆盖启动。确认发布服务主体的权限
执行发布的服务主体需拥有Microsoft.DataFactory/factories/triggers/write和Microsoft.DataFactory/factories/triggers/start/action权限,检查IAM配置确保权限足够操作触发器。调整发布步骤的执行顺序
确认触发器启动步骤在ARM模板部署完成后执行,避免因模板未部署完成,ADF实例中尚未创建触发器就执行启动操作。
内容的提问来源于stack exchange,提问作者Potis23

