Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As etiquetas são pares de chave-valor que podem ser anexados a orquestrações, atividades e suborquestrações para adicionar metadados personalizados. Use etiquetas para categorizar e correlacionar o trabalho à medida que é executado. Também pode usar etiquetas de orquestração para consultar instâncias de orquestração.
Pode adicionar etiquetas a:
- Instâncias de orquestração — quando inicias uma nova orquestração a partir do cliente.
- Atividades — quando um orquestrador agenda uma atividade.
- Sub-orquestrações — quando um orquestrador agenda uma orquestração infantil.
Suporte a SDK e extensões
| SDK/Extensão | Etiquetas de orquestração | Etiquetas de atividade | Etiquetas de suborquestração | Ler etiquetas de orquestração |
|---|---|---|---|---|
SDK .NET de Tarefas Duráveis (durabletask-dotnet) |
✅ | ✅ | ✅ | ✅ |
Durable Task JavaScript SDK (durabletask-js) |
✅ | ✅ | ✅ | ✅ |
SDK Python para Tarefas Duráveis (durabletask-python) |
✅ | ✅ | ❌ |
❌ (não apareceu em OrchestrationState) |
SDK Java de Tarefas Duráveis (durabletask-java) |
✅ (v1.6.0+) |
❌ (TaskOptions é apenas para tentativas repetidas) |
❌ | ✅ |
| Durable Functions: .NET isolado | ✅ | ✅ | ✅ | ✅ |
| Durable Functions: .NET em processo | ❌ | ❌ | ❌ | ❌ |
| Durable Functions: JavaScript | ❌ | ❌ | ❌ | ❌ |
| Durable Functions: Python | ❌ | ❌ | ❌ | ❌ |
| Durable Functions: Java | ✅ | ❌ | ❌ | ✅ |
Como funcionam as tags
Quando agendas uma orquestração, atividade ou suborquestração, podes fornecer um dicionário de pares chave-valor de cordas como etiquetas. O Durable Task Scheduler armazena e expõe as etiquetas de forma diferente dependendo do que etiquetas:
- As etiquetas de orquestração são armazenadas como metadados na instância de orquestração. As etiquetas que fornece ao chamar uma suborquestração tornam-se metadados na instância de orquestração filha. Pode ler estas etiquetas e filtrar as instâncias de orquestração por etiqueta.
- As etiquetas de atividade são armazenadas no evento agendado da atividade no histórico de orquestração principal. Podes inspecioná-los no histórico de orquestração, mas não estão indexados nem disponíveis nas consultas de etiquetas de orquestração. As etiquetas de atividade também não são passadas para a função de atividade.
Defina etiquetas ao agendar a orquestração, a atividade ou a suborquestração. Não podes mudar as etiquetas depois.
Defina um nome de exibição personalizado
Use a conhecida durabletask.displayName etiqueta para dar a uma orquestração, suborquestração ou atividade um nome destinado a pessoas que assistem a uma execução. Quando esta tag tem um valor não vazio, o painel do Durable Task Scheduler mostra esse valor em qualquer local onde, de outra forma, mostraria o nome registado, incluindo na lista de orquestrações, nas vistas de fluxo e de sequência e nos painéis de detalhes.
O nome registado não é descartado nem alterado. Continua disponível na dica de ferramentas do painel e nos detalhes, e o nome de visualização personalizado não afeta o código executado. Se a etiqueta estiver em falta ou vazia, o painel mostra o nome registado como habitual.
Importante
O durabletask. prefixo é reservado para a plataforma. O painel esconde etiquetas cujas chaves começam durabletask. na lista normal de etiquetas, por isso etiquetas de plataforma, como durabletask.displayName, não aparecem tanto como metadados interpretados como etiquetas brutas. Não cries as tuas próprias chaves de etiqueta sob o durabletask. prefixo.
Adicionar etiquetas a uma instância de orquestração
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);
Adicionar etiquetas a uma atividade
var options = new TaskOptions(tags: new Dictionary<string, string>
{
{ "scheduleId", scheduleId },
});
await context.CallActivityAsync(nameof(CacheClearingActivity), options);
Adicionar etiquetas a uma suborquestração
var options = new SubOrchestrationOptions
{
Tags = new Dictionary<string, string>
{
{ "workflowType", "order-processing" },
},
};
await context.CallSubOrchestratorAsync(
"ValidateOrderOrchestration", input: order, options: options);
Ler etiquetas de orquestração
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}");
}
}
Tags de consulta
No painel do Durable Task Scheduler, utilize o filtro de Etiqueta para filtrar instâncias de orquestração por etiqueta de orquestração. O filtro corresponde à chave ou valor da etiqueta. A lista de orquestração também mostra os marcadores de orquestração numa coluna.
As etiquetas de atividade aparecem no evento agendado da atividade no histórico de orquestração. Elas não estão incluídas no filtro de Etiquetas da lista de orquestração.
Diretrizes para etiquetas
- Use chaves consistentes — Siga uma convenção de nomenclatura para poder filtrar as instâncias de orquestração de modo fiável e correlacionar atividades.
- Mantenha as etiquetas significativas — Use valores que forneçam contexto.
- Use valores de cadeias — Chaves e valores são cadeias.
- Tamanho da etiqueta de orquestração mental — O dicionário completo de etiquetas de orquestração serializado em JSON pode ter até 1.000 bytes. Este limite inclui todas as chaves e valores, e os caracteres UTF-8 de múltiplos bytes contam como mais de um byte cada. As tags de atividade não estão sujeitas a este limite de metadados da instância de orquestração, mas contribuem para o tamanho do histórico de orquestração.
Limitações
- As etiquetas são imutáveis depois de a orquestração, a atividade ou a suborquestração serem programadas.
- As chaves e os valores das tags são cadeias de caracteres.
- Podes inspecionar as etiquetas de atividade no histórico de orquestração, mas não as podes consultar. Também não podes passá-los para funções de atividade.