我正在尝试创建 Azure Eventgrid 和 Webhook 响应,以便将入站文本消息从 Azure 通信服务发送到我的 Azure 托管 WebApp。现在,我很难找到说明如何在 Webapp 控制器中创建端点以获取 Azure webhook 对握手和验证的响应的文档。我在我的控制器中创建了一个端点,我认为它应该捕获数据并在 POST 方法中处理它,但由于我试图模仿的参数而失败。对此主题的任何见解表示赞赏。
我尝试将我在这些文档中找到的很多内容集成到我的应用程序控制器中,以尝试让它工作,但我认为我可能做错了,因为它说这段代码是用于 Azure 函数的???我不完全确定它们是如何使用的,但我尝试将相同的 C# 代码集成到我的控制器中。请参阅以下文档: https ://docs.microsoft.com/en-us/azure/event-grid/receive-events
这是我的控制器,它试图模仿我在链接的文档中读到的内容
[HttpPost("incoming")]
public async Task<IActionResult> GetFlightInfo([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest incoming,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string response = string.Empty;
BinaryData events = await BinaryData.FromStreamAsync(incoming.Body);
log.LogInformation($"Received events: {events}");
EventGridEvent[] egEvents = EventGridEvent.ParseMany(events);
foreach (EventGridEvent eventGridEvent in egEvents)
{
// Handle system events
if (eventGridEvent.TryGetSystemEventData(out object eventData))
{
// Handle the subscription validation event
if (eventData is SubscriptionValidationEventData subscriptionValidationEventData)
{
log.LogInformation($"Got SubscriptionValidation event data, validation code: {subscriptionValidationEventData.ValidationCode}, topic: {eventGridEvent.Topic}");
// Do any additional validation (as required) and then return back the below response
var responseData = new SubscriptionValidationResponse()
{
ValidationResponse = subscriptionValidationEventData.ValidationCode
};
return new OkObjectResult(responseData);
}
}
}
return new OkObjectResult(response);
}