Очистка журнала при отладке устойчивых функций Azure

Долговечные функции сохраняют состояние в хранилище, это то, что заставляет их работать, но это очень хлопотно при отладке и разработке. У меня есть большое количество запусков, которые не были завершены, и система пытается запустить снова, когда я запускаю процесс. Некоторые прогоны содержат ошибочные данные, которые вызывают исключения, в то время как другие были прерваны раньше, так как что-то не сработало, как ожидалось.

Я не хочу запускать все старые случаи при запуске моего приложения в режиме отладки (работающего с моей локальной учетной записью хранилища). Как я могу автоматически очистить все данные, чтобы запускались только новые функции?


person user1038502    schedule 23.11.2019    source источник


Ответы (3)


Вы можете использовать Основные инструменты Azure, чтобы очистить состояние экземпляра оркестрации.

Сначала вам нужно убедиться, что для вашей конкретной версии функции Azure установлены основные инструменты Azure. Вы можете сделать это с помощью диспетчера пакетов NPM. (Обратите внимание, что это для версии функций Azure - V3.)

npm install -g azure-functions-core-tools@3

Затем откройте командную строку в корневом каталоге проекта функций Azure. Базовым инструментам Azure требуется файл host.json из вашего проекта для идентификации экземпляров оркестровки.

Вы можете использовать следующее, чтобы просмотреть все доступные действия:

func durable 

Затем вы можете очистить историю экземпляров, используя следующее:

func durable purge-history
person sirius90    schedule 17.06.2020
comment
Превосходно! Я бы просто добавил, что это также очень полезно для перечисления всех экземпляров перед их очисткой: func Durable get-instance. Кроме того, я не мог установить Azure Core Tools через NPM, мне пришлось загрузить установщик. - person Luis Gouveia; 04.01.2021

Вы можете вызвать метод PurgeInstanceHistoryAsync одним из следующих способов:

  1. Идентификатор экземпляра оркестрации
[FunctionName("PurgeInstanceHistory")]
public static Task Run(
    [DurableClient] IDurableOrchestrationClient client,
    [ManualTrigger] string instanceId)
{
    return client.PurgeInstanceHistoryAsync(instanceId);
}
  1. Интервал времени
[FunctionName("PurgeInstanceHistory")]
public static Task Run(
    [DurableClient] IDurableOrchestrationClient client,
    [TimerTrigger("0 0 12 * * *")]TimerInfo myTimer)
{
    return client.PurgeInstanceHistoryAsync(
        DateTime.MinValue,
        DateTime.UtcNow.AddDays(-30),  
        new List
        {
            OrchestrationStatus.Completed
        });
}

Ссылка на фрагменты кода выше: https://docs.microsoft.com/en-gb/azure/azure-functions/durable/durable-functions-instance-management#purge-instance-history

person Ling Toh    schedule 24.11.2019

Теперь существует это расширение VsCode, в котором теперь также есть 'Purge Durable Functions History ' характерная черта. Введите «Очистить историю долговременных функций» на панели команд - и готово. Если вы не используете VsCode, то этот же инструмент доступен как отдельная служба, вы можете запустить его локально или развернуть в Azure.

person scale_tone    schedule 25.11.2019