При поиске способа изменить срок хранения экземпляра концентратора событий (без его удаления и повторного создания) мне очень не хватает материала. Есть ссылки на то, что это было возможно, включая запись в блоге Microsoft, здесь: https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/data-retention-in-event-hubs/ba- стр/370660 (и следите за сообщениями в Stack Overflow, без фактического примера того, как это сделать!)
Я хочу увеличить срок с 1 дня до 7, но, похоже, на портале Azure нет способа сделать это, а без документации я понятия не имею, как это сделать. Похоже, это должен быть случай изменения элемента «messageRetentionInDays» в шаблоне ARM и повторного развертывания в режиме обновления (а не демонтажа + повторного развертывания). Однако без документов и чьего-либо подтверждения я не хочу экспериментировать.
Любые идеи/документы, которые я пропустил, или ваш собственный опыт?
Существует множество способов обновить срок хранения. ARM/Bicep — отличный выбор, в остальном есть:
Azure CLI
az eventhubs eventhub update --resource-group myresourcegroup --namespace-name mynamespace --name myeventhub --message-retention 3
(док)
Отдых Апи
Вы можете использовать остальные API для обновления концентратора событий, например
PUT https://your-namespace.servicebus.windows.net/your-event-hub?timeout=60&api-version=2014-01 HTTP/1.1
Authorization: SharedAccessSignature sr=your-namespace.servicebus.windows.net&sig=tYu8qdH563Pc96Lky0SFs5PhbGnljF7mLYQwCZmk9M0%3d&se=1403736877&skn=RootManageSharedAccessKey
Content-Type: application/atom+xml;type=entry;charset=utf-8
Host: your-namespace.servicebus.windows.net
If-Match: *
Content-Length: 264
Expect: 100-continue
Connection: Keep-Alive
<entry xmlns='http://www.w3.org/2005/Atom'>
<content type='application/xml'>
<EventHubDescription xmlns:i = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<MessageRetentionInDays>3</MessageRetentionInDays>
</EventHubDescription>
</content>
</entry>
(док)
PowerShell
$loggingEventHub = Get-AzEventHub -ResourceGroupName $ehResourceGroup -Namespace $ehNameSpace -Name $ehName
$loggingEventHub.MessageRetentionInDays = 5
Set-AzEventHub -ResourceGroupName $ehResourceGroup -Namespace $ehNameSpace -Name $ehName -InputObject $loggingEventHub
(док)
Спасибо! Должно быть, я ищу неправильные вещи, потому что ничего из этого не появилось в Google, а в других ответах StackOverflow ничего не было.