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

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


person amnezjak    schedule 15.12.2020    source источник


Ответы (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"
    }
  ]
}
person Roman Kiss    schedule 15.12.2020