Триггер EventGrid функций Azure - PullRequest
0 голосов
/ 16 мая 2018

Я реализовал триггер EventGrid для ответа на события хранилища BLOB-объектов, логика которого упрощена ниже:

public static async void Run(
    JObject eventGridEvent,
    TraceWriter log,
    ExecutionContext context)
{
    string eventContent = ParseEvent(eventGridEvent);

    HttpClient client = GetProxyClient();
    HttpResponseMessage response = await client.GetAsync("blabla/" + eventContent);
    string responseContent = await response.Content.ReadAsStringAsync();
    log.Info("Here is the response :" + responseContent);
}

Внешний API не займет много времени, чтобы ответить (1 секунда или меньше) и моя конфигурациядля хоста установлено значение по умолчанию (поэтому разрешено неограниченное количество одновременных вызовов).

Я получаю много дублированных событий в журналах при добавлении нескольких BLOB-объектов (начиная только с 2 BLOB-объектов) одновременновремя (сценарий быстро загружает BLOB-объекты один за другим без промежутка времени ожидания).

Я чувствую, что это может быть связано с тем фактом, что я никогда не подтверждаю получение событий, и я не знаю,Я должен сделать это в своем коде, или триггер EventGrid делает это автоматически.

Является ли логика для подтверждения обработки события, которое должно быть реализовано в триггере EventGrid (ответ Http 200), или этообрабатывается автоматически?

Если нет, я все еще получаю дублированные события?Как правило, при загрузке одного большого двоичного объекта я получаю событие для него 3-4 раза.

Причина, по которой я задаю этот вопрос, заключается в том, что при использовании Http Trigger и возвращении ответа 400 я также получаю дублированные события, что имеет смыслтак как я не подтверждаю, что правильно обработал событие.Однако, когда я возвращаю ответ 200, я не получаю дублированные события.

Спасибо

1 Ответ

0 голосов
/ 16 мая 2018

Вам не нужно делать ничего особенного, чтобы указать на успех Event Grid.Если выполнение вашей функции выполнено успешно (исключение не выдается), триггер автоматически ответит кодом состояния успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...