英文:
Trigger Azure Pipeline With an empty payload from Azure EventGrid
问题
我有一个API管理服务
,我希望在APIM发生更改时调用Azure管道。
APIM中的事件允许通过EventGrid
创建Webhook。但是,我想知道如何使用空的JSON负载调用终点。
根据运行 - 运行管道,我们可以通过RestApi运行管道。我正在配置此终点并设置正确的标头。
从Postman
中,我可以使用以下方式调用运行管道终点:
curl --location --request POST 'https://dev.azure.com/organization/project/_apis/pipelines/pipelineId/runs' \
--header 'Accept: api-version=7.0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic PAT' \
--data '{}'
在APIM中 => 创建事件订阅 => 事件网格的交付属性 自定义交付属性 中,我找不到如何添加空负载。从Postman发送请求时需要这个空负载。
那么如何在EventGrid Webhook
中像上面的请求中添加空负载呢?
英文:
I have an API Management service
that I would like to call an Azure pipeline when changes occur in the APIM.
The Event in APIM allows the creation of a webhook through EventGrid
. however, I am looking at how to call the endpoint with the empty JSON payload.
According to Runs - Run Pipeline we can run the pipeline through RestApi. I am configuring this endpoint with the correct headers.
From Postman
I can call the Run Pipeline endpoint with the below;
curl --location --request POST 'https://dev.azure.com/organization/project/_apis/pipelines/pipelineId/runs' \
--header 'Accept: api-version=7.0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic PAT'
--data '{}'
In the APIM => Create Event Subscription => Delivery Properties Custom delivery properties
of EventGrid, I couldn't find a way to add an empty payload. This empty payload is required while sending a request from the Postman.
So how to add an empty payload to the request as above in the EventGrid Webhook?
答案1
得分: 0
-
使用 WebHook 事件传递 时,事件网格会执行所述的握手操作,以使其正常工作,并始终包括有效负载。
-
您应使用不同的服务代理请求。以下是一些选项:
1. 使用 APIM
这是使用相同的 APIM 实例获取事件网格事件并将其转发到 DevOps API。此处 提供了一个自定义策略示例供参考。
2. 使用 Azure Functions
Azure Functions的绑定会处理此操作,由于这是基于代码的,您可以在调用 DevOps API 之前执行任何其他所需操作或处理。
英文:
When using WebHook Event Delivery, Event Grid performs a handshake as documented for it to work and always includes a payload.
You should proxy the request using a different service. Here are some options
1. Use APIM
This is to use the same APIM instance to get the Event Grid event and forward it to the DevOps API.
Here is a custom policy example to get started.
2. Use Azure Functions
The binding for Azure Functions handles this for you, and since this is code-based, you can perform any other action or processing required before calling the DevOps API.
Check the official docs for how Azure Functions can be used as an event handler.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论