用于 SMS 传送事件的 Azure ACS Webhook 尽管有日志但未触发

问题描述 投票:0回答:1

我已在 Azure ACS 中设置了一个免费电话号码,并希望在 SMS 发送或失败时触发操作。为此,我创建了一个 REST 端点,以便 Azure 可以通过 Webhook 发送事件详细信息。我使用 Azure ACS 事件注册了 Webhook,当我手动发布示例有效负载时,一切正常。 但是,当我使用 Azure 门户或通过我自己的代码发送短信时,即使我已执行以下操作,也不会触发 Webhook:

  1. 启用 Microsoft.EventGrid
  2. 使用 Azure ACS 注册 Webhook

我还检查了 Azure ACS 日志,可以看到 SMS 事件已正确记录,但仍未对 Webhook 进行调用。 还有其他人遇到过这个问题或者对可能导致问题的原因有任何想法吗?

azure azure-communication-services
1个回答
0
投票

Webhook 是一个 HTTP 端点,允许外部应用程序与您的系统进行通信。您可以使用各种 Azure 服务(例如 Azure Functions 或运行 API 的 Web 应用程序)来实现 Webhook。

我使用 Azure Function EventGridTrigger 来跟踪短信接收和短信发送的事件报告

下面是用于跟踪 SMS 事件的 C# 事件网格触发代码。

    [Function("HandleTelephonyAndSmsEvents")]
    public void Run([EventGridTrigger] EventGridEvent eventGridEvent)
    {
        _logger.LogInformation($"Event received: {eventGridEvent.EventType}");
        _logger.LogInformation($"SMS Data: {eventGridEvent.Data}");
        if (eventGridEvent.EventType == "Microsoft.Communication.SMSReceived")
        {
           
            _logger.LogInformation($"SMS Received: {eventGridEvent.Data}");
        }
        else if (eventGridEvent.EventType == "Microsoft.Communication.SMSDeliveryReportReceived")
        {
          
            _logger.LogInformation($"SMS Delivery Report: {eventGridEvent.Data}");
        }
    }
}

将上述事件网格部署到 Azure 并使用 URL 作为 Webhook 来跟踪事件。 URL 将采用以下格式:

https://ServiceName.azurewebsites.net/runtime/webhooks/EventGrid?functionName=Function1&code=eventgrid_extensionKey

我使用此文档,通过向 Azure 通信服务的 SMS API 签名并向其发出请求,通过 REST API 发送短信。发送事件被触发为事件触发器。

输出:

enter image description here

在Azure功能中: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.