0
votes

Is there a clean retry mechanism for EventGrid messages that were successfully delivered, but downstream processes failed and message needs to be sent again?

Example:

  • EventGrid message triggered based on blob upload to Azure Storage
  • EventGrid message in turn, triggers an Azure Function
  • Function receives message
  • Function fails somewhere downstream

Is there a clean way to resend the EventGrid message rather than re-uploading the blob to storage to generate a new message?

Looking for a way to maybe craft and send retry messages for a bunch of blobs?

Something like (pseudocode):

ForEach blob in GET_BLOBS
  - where Modified Timestamp > Today - 1,
  - generate EventGrid message
    {
        "blobUrl":"https://storageaccount.blob.core.windows.net/dir/file.json",
    }
  - send EventGrid message to Function
1

1 Answers

1
votes

I do recommend to read the document Event Grid message delivery and retry.

In the case, when your subscriber invokes a downstream process in the async manner using a PUSH_ACK pattern, the AEG supports also delivering an event message in the PULL pattern, where the delivery target resource is used for saving the event message for its latter pull up based on the needs, for instance: storage queue, etc.