Как переопределить время истечения срока действия по умолчанию при публикации сетки событий Azure в очередь?

#azure #azure-storage #azure-eventgrid

#azure #azure-хранилище #azure-eventgrid

Вопрос:

Я создал подписку на сетку событий в хранилище больших двоичных объектов Azure, которая отправляет сообщение в очередь Azure каждый раз, когда создается / изменяется большой двоичный объект. Сообщение вставляется с TTL по умолчанию, которое составляет 7 дней. Есть ли способ изменить этот параметр? Я хотел бы продлить время истечения как минимум до 14 дней.

Ответ №1:

Из подписки AEG невозможно изменить какое-либо свойство сообщения, отправленного на ресурс обработчика событий.

Однако в качестве обходного пути для этого можно использовать функцию EventGridTrigger с привязкой вывода CloudQueue к очереди хранения.

Следующий фрагмент кода является примером функции EventGridTrigger для вашего решения:

run.csx:

 #r "Newtonsoft.Json"
#r "Microsoft.WindowsAzure.Storage"

using Microsoft.WindowsAzure.Storage.Queue;
using Microsoft.WindowsAzure.Storage;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public static async Task Run(JObject eventGridEvent, CloudQueue outputQueue, ILogger log)
{
    log.LogInformation(eventGridEvent.ToString());

    await outputQueue.AddMessageAsync(new CloudQueueMessage(eventGridEvent.ToString()), 
       TimeSpan.FromDays(14),    // TTL
       TimeSpan.FromSeconds(0), 
       new QueueRequestOptions(),
       new OperationContext());      
}
 

function.json:

 {
  "bindings": [
    {
      "type": "eventGridTrigger",
      "name": "eventGridEvent",
      "direction": "in"
    },
    {
      "name": "outputQueue",
      "type": "queue",
      "direction": "out",
      "queueName": "test",
      "connection": "myaccount_STORAGE"
    }
  ]
}