Dodaj tagi do orkiestracji i aktywności w Durable Task Scheduler

Tagi to pary klucz-wartość, które można przypisać do orkiestracji, aktywności i podorkiestracji, aby dodać własne metadane. Używaj tagów do kategoryzowania i korelowania pracy w trakcie jej działania. Możesz też używać tagów orkiestracji do wyszukiwania instancji orkiestracji.

Tagi można dodawać do:

  • Instancje orkiestracji — po uruchomieniu nowej orkiestracji z poziomu klienta.
  • Działania — gdy orkiestrator planuje działanie.
  • Orkiestracje podrzędne — gdy orkiestrator planuje orkiestrację podrzędną.

Obsługa zestawu SDK i rozszerzeń

SDK/rozszerzenie Znaczniki orkiestracji Tagi aktywności Tagi sub-orkiestracji Odczytaj tagi orkiestracji
Durable Task .NET SDK (durabletask-dotnet)
Durable Task JavaScript SDK (durabletask-js)
Durable Task Python SDK (durabletask-python) ❌ (niewyświetlane w OrchestrationState)
Trwały zestaw SDK Java zadań (durabletask-java) ✅ (wersja 1.6.0+) ❌ (TaskOptions służy wyłącznie do ponowienia próby)
Durable Functions: model izolowany platformy .NET
Durable Functions: .NET w procesie
Durable Functions: JavaScript
Durable Functions: Python
Durable Functions: Java

Jak działają tagi

Planując orkiestrację, aktywność lub podorkiestrację, możesz podać w postaci tagów słownik par klucz-wartość złożonych z ciągów znaków. Trwały Harmonogram Zadań przechowuje i odsłania tagi inaczej w zależności od tego, co oznaczysz:

  • Tagi orkiestracji są przechowywane jako metadane na instancji orkiestracji. Tagi przekazywane podczas wywoływania podrzędnej orkiestracji stają się metadanymi instancji podrzędnej orkiestracji. Możesz czytać te tagi i filtrować instancje orkiestracji po tagu.
  • Tagi aktywności są przechowywane na zaplanowanym zdarzeniu aktywności w historii orkiestracji nadrzędnej. Możesz je przeglądać w historii orkiestracji, ale nie są indeksowane ani dostępne w zapytaniach o tagi orkiestracji. Tagi aktywności również nie są przekazywane do funkcji aktywności.

Ustalaj tagi, gdy planujesz orkiestrację, aktywność lub suborkiestrację. Nie możesz potem zmieniać tagów.

Ustaw niestandardową nazwę wyświetlaną

Użyj znanego tagu, aby nadać orkiestracji, suborkiestracji lub aktywności nazwę przeznaczoną dla osób oglądających durabletask.displayName run. Gdy ten tag ma niepustą wartość, pulpit nawigacyjny Durable Task Scheduler pokazuje tę wartość wszędzie tam, gdzie w przeciwnym razie wyświetlana byłaby zarejestrowana nazwa, w tym na liście orkiestracji, w widokach przepływu i sekwencji oraz w panelach szczegółów.

Zarejestrowane nazwisko nie jest odrzucane ani zmieniane. Pozostaje dostępny w podpowiedzi i szczegółach w panelu, a niestandardowa nazwa wyświetlana nie wpływa na to, jaki kod jest uruchamiany. Jeśli tag jest nieobecny lub pusty, dashboard pokazuje zarejestrowaną nazwę jak zwykle.

Important

Prefiks durabletask. jest zarezerwowany dla platformy. Panel ukrywa tagi, których klucze zaczynają się od durabletask. normalnej listy tagów, dzięki czemu tagi platformowe, takie jak durabletask.displayName, nie pojawiają się ani jako interpretowane metadane, ani jako surowe tagi. Nie tworz własnych kluczy tagów pod tym prefiksem durabletask. .

Dodaj tagi do instancji orkiestracji

var options = new StartOrchestrationOptions
{
    InstanceId = "order-12345",
    Tags = new Dictionary<string, string>
    {
        { "environment", "production" },
        { "tenant", "contoso" },
    },
};

string instanceId = await client.ScheduleNewOrchestrationInstanceAsync(
    "ProcessOrderOrchestration", input: order, options: options);

Dodaj tagi do aktywności

var options = new TaskOptions(tags: new Dictionary<string, string>
{
    { "scheduleId", scheduleId },
});

await context.CallActivityAsync(nameof(CacheClearingActivity), options);

Dodaj tagi do podrzędnej orkiestracji

var options = new SubOrchestrationOptions
{
    Tags = new Dictionary<string, string>
    {
        { "workflowType", "order-processing" },
    },
};

await context.CallSubOrchestratorAsync(
    "ValidateOrderOrchestration", input: order, options: options);

Odczytaj tagi orkiestracji

OrchestrationMetadata? instance = await client.GetInstanceAsync(instanceId);

if (instance is not null)
{
    foreach (KeyValuePair<string, string> tag in instance.Tags)
    {
        Console.WriteLine($"{tag.Key} = {tag.Value}");
    }
}

Tagi zapytań

Na pulpicie nawigacyjnym Durable Task Scheduler użyj filtru Tag, aby filtrować instancje orkiestracji na podstawie tagu orkiestracji. Filtr dopasowuje się do klucza lub wartości tagu. Lista orkiestracji wyświetla również tagi orkiestracji w kolumnie.

Tagi aktywności pojawiają się w zaplanowanym zdarzeniu aktywności w historii orkiestracji. Nie są uwzględnione w filtrze tagów na liście orkiestracji.

Zrzut ekranu pulpitu narzędzia Durable Task Scheduler przedstawiający filtr tagów i kolumnę tagów na liście orkiestracji.

Wskazówki dotyczące tagów

  • Używaj spójnych kluczy — Stosuj konwencję nazewnictwa, aby móc niezawodnie filtrować instancje orkiestracji i korelować aktywności.
  • Dbaj o to, by tagi były znaczące — Używaj wartości, które zapewniają odpowiedni kontekst.
  • Użyj wartości ciągu — klucze i wartości są ciągami.
  • Rozmiar tagu Mind Orchestration — Kompletny słownik tagów orkiestracji zserializowany do formatu JSON może mieć maksymalnie 1 000 bajtów. Limit ten obejmuje wszystkie klucze i wartości, a znaki wielobajtowe UTF-8 liczą się jako więcej niż jeden bajt każdy. Znaczniki aktywności nie podlegają temu limitowi metadanych instancji orkiestracji, ale zwiększają rozmiar historii orkiestracji.

Ograniczenia

  • Tagi są niezmienne po zaplanowaniu orkiestracji, aktywności lub suborkiestracji.
  • Klucze i wartości tagów są ciągami znaków.
  • Możesz przeglądać tagi aktywności w historii orkiestracji, ale nie możesz wykonywać względem nich zapytań. Nie możesz też przekazać ich do funkcji aktywności.

Następne kroki