#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"
}
]
}