如何为EventGrid Webhook配置空Payload以触发Azure Pipeline?
实现APIM事件触发带空Payload的Azure Pipeline请求
由于Azure Event Grid的Webhook订阅默认会携带APIM的事件数据作为Payload,无法直接配置发送空JSON {},可以通过以下两种中转方案解决:
方案一:使用Azure Logic Apps中转
- 创建Logic Apps工作流,选择「当事件网格事件发生」作为触发器,关联目标APIM资源
- 添加「HTTP」动作,配置参数:
- 请求方法:
POST - 请求URI:你的Azure Pipeline运行接口地址
https://dev.azure.com/organization/project/_apis/pipelines/pipelineId/runs - 请求头部:添加
Accept: api-version=7.0、Content-Type: application/json、Authorization: Basic PAT(替换为你的个人访问令牌) - 请求正文:直接填写
{}
- 请求方法:
- 将APIM的Event Grid事件订阅端点修改为该Logic Apps的触发器URL
方案二:使用Azure Function作为代理
- 创建HTTP触发的Azure Function(支持C#、Python等多种语言)
- 在Function代码中忽略Event Grid传入的原始事件Payload,构造一个仅包含空JSON
{}的POST请求,发送到你的Azure Pipeline运行接口 - 配置Function的访问权限(如启用匿名访问或使用访问密钥),将APIM的Event Grid事件订阅端点指向该Function的URL
这样就能确保APIM发生变更时,最终向Pipeline接口发送符合要求的带空Payload的请求。
内容的提问来源于stack exchange,提问作者ARH
相关产品推荐
相关产品推荐

