检查网格中的事件是否已触发,以及它是否使用C#发送了正确的响应(Azure)

时间:2018-10-15 02:25:26

标签: c# azure azure-eventgrid

我正在尝试测试预订事件网格的函数。

我发现以下创建自定义事件的代码:

string topicEndpoint = "https://<topic-name>.<region>-1.eventgrid.azure.net/api/events";
string topicKey = "<topic-key>";
string topicHostname = new Uri(topicEndpoint).Host;

TopicCredentials topicCredentials = new TopicCredentials(topicKey);
EventGridClient client = new EventGridClient(topicCredentials);

client.PublishEventsAsync(topicHostname, GetEventsList()).GetAwaiter().GetResult();
Console.Write("Published events to Event Grid.");

static IList<EventGridEvent> GetEventsList()
{
    List<EventGridEvent> eventsList = new List<EventGridEvent>();
    for (int i = 0; i < 1; i++)
    {
        eventsList.Add(new EventGridEvent()
        {
            Id = Guid.NewGuid().ToString(),
            EventType = "Contoso.Items.ItemReceivedEvent",
            Data = new ContosoItemReceivedEventData()
            {
                ItemUri = "ContosoSuperItemUri"
            },

            EventTime = DateTime.Now,
            Subject = "Door1",
            DataVersion = "2.0"
        });
    }
    return eventsList;
}

现在,我如何检查该函数是否确实被触发以及它是否正在使用C#代码发送发送响应?

在上面的代码中,EventType是要触发的函数的名称吗?还是事件网格如何知道要运行哪个功能?

1 个答案:

答案 0 :(得分:0)

上面的函数用于通过指定所需的事件网格主题的主题端点和主题键,将事件发送到事件网格主题。手动执行此功能时,事件将发送到事件网格主题,您可以为事件网格主题创建的事件网格订阅进一步订阅事件。

要了解有关事件网格实体的更多详细信息,请参阅此link

为了测试事件是否已发送到事件网格主题并由事件网格订阅成功订阅,可以在azure门户中查看其指标。

投放指标 门户显示事件消息传递状态的度量标准。

对于主题,指标为:

  

成功发布:事件已成功发送到主题,并以2xx响应进行处理。

     

发布失败:事件已发送至主题,但被错误代码拒绝。

     

不匹配:事件已成功发布到主题,但不匹配事件订阅。该事件已删除。

对于订阅,指标为:

  

成功交付:事件成功交付给订阅的端点,并收到2xx响应。

     

传递失败:事件已发送到订阅的端点,但收到了4xx或5xx响应。

     

过期事件:事件未传递,所有重试尝试均已发送。该事件已删除。

     

匹配的事件:主题中的事件与事件订阅匹配。

您可以使用这些metrics来测试功能,以测试将事件发送到事件网格主题