Ajouter des étiquettes aux orchestrations et aux activités dans le planificateur de tâches durables

Les balises sont des paires clé-valeur que vous pouvez attacher à des orchestrations, activités et sous-orchestrations pour ajouter des métadonnées personnalisées. Utilisez des tags pour catégoriser et corréler le travail au fur et à mesure de son exécution. Vous pouvez aussi utiliser des balises d’orchestration pour interroger des instances d’orchestration.

Vous pouvez ajouter des balises à :

  • Instances d’orchestration : lorsque vous démarrez une nouvelle orchestration à partir du client.
  • Activités : lorsqu’un orchestrateur planifie une activité.
  • Sous-orchestrations : lorsqu’un orchestrateur planifie une orchestration enfant.

Prise en charge du SDK et des extensions

SDK/Extension Balises d’orchestration Balises d’activité Balises de sous-orchestration Lire les tags d’orchestration
SDK .NET Durable Task (durabletask-dotnet)
SDK JavaScript Durable Task (durabletask-js)
SDK Python pour tâches durables (durabletask-python) ❌ (non affiché dans OrchestrationState)
SDK Java Durable Task (durabletask-java) ✅ (v1.6.0+) ❌ (TaskOptions est réservé aux nouvelles tentatives)
Durable Functions : .NET isolé
Durable Functions : .NET in-process
Durable Functions : JavaScript
Durable Functions : Python
Durable Functions : Java

Fonctionnement des balises

Lorsque vous planifiez une orchestration, une activité ou une sous-orchestration, vous pouvez fournir un dictionnaire de paires clé-valeur de chaînes sous forme de tags. Le Planificateur de Tâches Durable stocke et expose les tags différemment selon ce que vous identifiez :

  • Les balises d’orchestration sont stockées comme métadonnées sur l’instance d’orchestration. Les balises que vous fournissez lors de l’appel d’une sous-orchestration deviennent des métadonnées sur l’instance d’orchestration enfant. Vous pouvez lire ces tags et filtrer les instances d’orchestration par tag.
  • Les balises d’activité sont stockées sur l’événement programmé de l’activité dans l’historique d’orchestration parent. Vous pouvez les inspecter dans l’historique d’orchestration, mais ils ne sont pas indexés ni disponibles dans les requêtes des tags d’orchestration. Les balises d’activité ne sont pas non plus transmises à la fonction activité.

Définissez des balises lorsque vous planifiez l’orchestration, l’activité ou la sous-orchestration. Tu ne peux pas changer les tags après.

Définir un nom d’affichage personnalisé

Utilisez le tag bien connu durabletask.displayName pour donner un nom à une orchestration, une sous-orchestration ou une activité destinée aux personnes qui regardent une partie. Lorsque cette balise a une valeur non vide, le tableau de bord Durable Task Scheduler affiche cette valeur partout où il afficherait autrement le nom enregistré, y compris la liste d’orchestration, les vues flux et séquence, ainsi que les panneaux de détails.

Le nom enregistré n’est ni supprimé ni changé. Il reste disponible dans l’infobulle du tableau de bord et dans les détails, et le nom d’affichage personnalisé n’a aucune incidence sur le code exécuté. Si l’étiquette manque ou vide, le tableau de bord affiche le nom enregistré comme d’habitude.

Important

Le préfixe durabletask. est réservé à la plateforme. Le tableau de bord masque les tags dont les clés commencent durabletask. par la liste normale de tags, de sorte que les tags de plateforme, comme durabletask.displayName, n’apparaissent pas à la fois comme métadonnées interprétées et comme tags bruts. Ne créez pas vos propres clés de tag sous le durabletask. préfixe.

Ajouter des balises à une instance d’orchestration

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);

Ajouter des balises à une activité

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

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

Ajouter des balises à une sous-orchestration

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

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

Lire les tags d’orchestration

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}");
    }
}

Balises de requête

Dans le tableau de bord Durable Task Scheduler, utilisez le filtre Tag pour filtrer les instances d’orchestration par tag d’orchestration. Le filtre correspond à la clé ou à la valeur du tag. La liste d’orchestration affiche également les balises d’orchestration sous forme de colonne.

Les balises d’activité apparaissent dans l’événement programmé de l’activité dans l’historique d’orchestration. Ils ne sont pas inclus dans le filtre Tag de la liste d’orchestration.

Capture d’écran du tableau de bord Durable Task Scheduler montrant le filtre de balises et la colonne des balises dans la liste des orchestrations.

Consignes relatives aux balises

  • Utilisez des tonalités cohérentes — Suivez une convention de nommage afin de pouvoir filtrer de manière fiable les instances d’orchestration et corréler les activités.
  • Conserver les balises significatives : utilisez des valeurs qui fournissent un contexte.
  • Utilisez des valeurs de chaîne : les clés et les valeurs sont des chaînes.
  • Taille de l’étiquette d’orchestration mentale — Le dictionnaire complet des balises d’orchestration sérialisé en JSON peut atteindre jusqu’à 1 000 octets. Cette limite inclut toutes les clés et valeurs, et les caractères UTF-8 multioctets comptent pour plus d’un octet chacun. Les balises d’activité n’utilisent pas cette limite de métadonnées d’instance d’orchestration, mais elles contribuent à la taille de l’historique d’orchestration.

Limites

  • Les balises sont immuables une fois l’orchestration, l’activité ou la sous-orchestration planifiée.
  • Les clés et valeurs de balise sont des chaînes.
  • Vous pouvez inspecter les balises d’activité dans l’historique d’orchestration, mais vous ne pouvez pas les interroger. Vous ne pouvez pas non plus les transmettre aux fonctions d’activité.

Étapes suivantes