Este guia descreve as etapas para configurar uma assinatura para eventos do Job Router e como recebê-los.
Para obter mais detalhes sobre a Grade de Eventos, consulte a documentação da Grade de Eventos.
Pré-requisitos
Criar uma subscrição do Event Grid
Este modelo implanta uma assinatura de Grade de Eventos em uma Fila de Armazenamento para eventos do Roteador de Trabalho.
Se a conta de armazenamento, a fila ou o tópico do sistema não existirem, eles também serão criados.
Parâmetros
-
Nome do Recurso dos Serviços de Comunicação do Azure: O nome do seu recurso dos Serviços de Comunicação do Azure. Por exemplo, se o ponto de extremidade do seu recurso for
https://contoso.communication.azure.net
, defina como contoso
.
-
Nome do Armazenamento: O nome da sua Conta de Armazenamento do Azure. Se não existir, será criado.
-
Subnome do evento: o nome da assinatura do evento a ser criada.
-
Nome do Tópico do Sistema: Se você tiver assinaturas de eventos existentes em seu recurso dos Serviços de Comunicação do Azure, localize o
System Topic
Events
nome na guia do seu recurso dos Serviços de Comunicação do Azure. Caso contrário, especifique um nome exclusivo, como o próprio nome do recurso dos Serviços de Comunicação do Azure.
-
Nome da fila: o nome da fila na sua conta de armazenamento. Se não existir, será criado.
Recursos implantados
Os seguintes recursos são implantados como parte da solução
-
Conta de armazenamento: se o nome da conta de armazenamento não existir.
-
Fila de armazenamento: se a fila não existir na conta de armazenamento.
-
Tópico do Sistema de Grade de Eventos: Se o tópico não existir.
-
Assinatura de grade de eventos: uma assinatura para todos os eventos do Job Router na fila de armazenamento.
Guia de início rápido: receber eventos da Grade de Eventos por meio de uma fila de armazenamento do Azure
Criar um novo aplicativo C#
Em uma janela de console (como cmd, PowerShell ou Bash), use o dotnet new
comando para criar um novo aplicativo de console com o nome EventReceiver
. Este comando cria um projeto C# "Hello World" simples com um único arquivo de origem: Program.cs.
dotnet new console -o EventReceiver
Altere seu diretório para a pasta do aplicativo recém-criada e use o dotnet build
comando para compilar seu aplicativo.
cd EventReceiver
dotnet build
Instalar os pacotes
Instale as filas de armazenamento do Azure e os pacotes de grade de eventos.
dotnet add package Azure.Storage.Queues
dotnet add package Azure.Messaging.EventGrid
Receber mensagens da fila
Copie o seguinte trecho de código e cole no arquivo de origem: Program.cs
using Azure.Storage.Queues;
using Azure.Messaging.EventGrid;
// For more detailed tutorials on storage queues, see: https://learn.microsoft.com/azure/storage/queues/storage-tutorial-queues
var queueClient = new QueueClient("<Storage Account Connection String>", "router-events");
while (true)
{
var msg = await queueClient.ReceiveMessageAsync();
if (msg.Value == null)
{
await Task.Delay(TimeSpan.FromSeconds(1));
continue;
}
var json = Convert.FromBase64String(msg.Value.Body.ToString());
var evt = EventGridEvent.Parse(BinaryData.FromBytes(json));
Console.WriteLine($"Received event: {evt.EventType} - {evt.Subject} - {evt.Data}");
await queueClient.DeleteMessageAsync(msg.Value.MessageId, msg.Value.PopReceipt);
}
Executar o código
Execute o aplicativo a partir do diretório do aplicativo com o dotnet run
comando.
dotnet run
Catálogo de Eventos
Eventos do roteador
Microsoft.Communication.RouterJobReceived
Voltar ao Catálogo de Eventos
{
"id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"jobStatus": "PendingClassification",
"channelId": "FooVoiceChannelId",
"classificationPolicyId": "test-policy",
"queueId": "queue-id",
"priority": 0,
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"requestedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 50,
"expirationTime": "2022-02-17T00:58:25.1736293Z"
}
],
"scheduledOn": "3/28/2007 7:13:50 PM +00:00",
"unavailableForMatching": false
},
"eventType": "Microsoft.Communication.RouterJobReceived",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
situação do emprego |
enum |
❌ |
Valores possíveis PendingClassification, Queued |
Quando esse evento é enviado, o processo de classificação ainda não foi executado ou o trabalho foi criado com um queueId associado. |
channelId |
string |
❌ |
|
|
classificaçãoPolicyId |
string |
✔️ |
|
null quando queueId é especificado para um trabalho |
queueId |
string |
✔️ |
|
null quando classificationPolicyId é especificado para um trabalho |
prioridade |
int |
✔️ |
|
Nulo quando classificationPolicyId é especificado. Valor não nulo em caso de atribuição direta de fila. |
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
requestedWorkerSelectors |
List<WorkerSelector> |
✔️ |
|
Com base na entrada do usuário |
agendadoOn |
DateTimeOffset |
✔️ |
|
Com base na entrada do usuário |
unavailableForMatching |
bool |
✔️ |
|
Com base na entrada do usuário |
Microsoft.Communication.RouterJobClassified
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/queue/{queue-id}",
"data": {
"queueDetails": {
"id": "625fec06-ab81-4e60-b780-f364ed96ade1",
"name": "Queue 1",
"labels": {
"Language": "en",
"Product": "Office",
"Geo": "NA"
}
},
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"classificationPolicyId": "test-policy",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
"priority": 5,
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"attachedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
]
},
"eventType": "Microsoft.Communication.RouterJobClassified",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
queueDetalhes |
QueueDetails |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
classificaçãoPolicyId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
prioridade |
int |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
attachedWorkerSelectors |
List<WorkerSelector> |
✔️ |
|
Lista dos seletores de trabalhadores anexada por uma política de classificação |
Microsoft.Communication.RouterJobQueued
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/queue/{queue-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
"priority": 1,
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"requestedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
],
"attachedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
]
},
"eventType": "Microsoft.Communication.RouterJobQueued",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelReference |
string |
✔️ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
prioridade |
int |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
requestedWorkerSelectors |
List<WorkerSelector> |
✔️ |
|
Com base na entrada do usuário durante a criação de trabalho |
attachedWorkerSelectors |
List<WorkerSelector> |
✔️ |
|
Lista dos seletores de trabalhadores anexada por uma política de classificação |
Microsoft.Communication.RouterJobClassificationFailed
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/classificationpolicy/{classificationpolicy-id}",
"data": {
"errors": [
{
"code": null,
"message": "Classification failed due to <reason>",
"target": null,
"innerError": null,
"details": null
}
],
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"classificationPolicyId": "test-policy",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
}
},
"eventType": "Microsoft.Communication.RouterJobClassificationFailed",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
erros |
List<CommunicationError> |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
classificaçãoPolicyId |
string |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
Microsoft.Communication.RouterJobCompleted
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/assignment/{assignment-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "queue-id",
"assignmentId": "6f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"workerId": "e3a3f2f9-3582-4bfe-9c5a-aa57831a0f88"
},
"eventType": "Microsoft.Communication.RouterJobCompleted",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
assignmentId |
string |
❌ |
|
|
trabalhadorId |
string |
❌ |
|
|
Microsoft.Communication.RouterJobClosed
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/assignment/{assignment-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "",
"dispositionCode": "",
"workerId": "",
"assignmentId": "",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
}
},
"eventType": "Microsoft.Communication.RouterJobClosed",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
dispositionCode |
string |
✔️ |
|
Com base na entrada do usuário |
trabalhadorId |
string |
❌ |
|
|
assignmentId |
string |
❌ |
|
|
Microsoft.Communication.RouterJobCancelled
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/disposition/{disposition-code}",
"data": {
"note": "Cancelled due to <reason>",
"dispositionCode": "100",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"queueId": ""
},
"eventType": "Microsoft.Communication.RouterJobCancelled",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
nota |
string |
✔️ |
|
Com base na entrada do usuário |
dispositionCode |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
queueId |
string |
✔️ |
|
|
Microsoft.Communication.RouterJobExceptionTriggered
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/exceptionrule/{rulekey}",
"data": {
"ruleKey": "r100",
"exceptionRuleId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
}
},
"eventType": "Microsoft.Communication.RouterJobExceptionTriggered",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
chave de regra |
string |
❌ |
|
|
exceptionRuleId |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
Microsoft.Communication.RouterJobWorkerSelectorsExpired
Voltar ao Catálogo de Eventos
{
"id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/queue/{queue-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"expiredRequestedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
],
"expiredAttachedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
]
},
"eventType": "Microsoft.Communication.RouterJobWorkerSelectorsExpired",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelReference |
string |
✔️ |
|
|
queueId |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
expiredRequestedWorkerSelectors |
List<WorkerSelector> |
✔️ |
|
Com base na entrada do usuário durante a criação de um trabalho |
expiredAttachedWorkerSelectors |
List<WorkerSelector> |
✔️ |
|
Lista dos seletores de trabalhadores anexada por uma política de classificação |
Microsoft.Communication.RouterJobUnassigned
Voltar ao Catálogo de Eventos
{
"id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}/assignment/{assignment-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"assignmentId": "",
"workerId": "",
"channelId": "FooVoiceChannelId",
"channelReference": "test-abc",
"queueId": "queue-id",
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
}
},
"eventType": "Microsoft.Communication.RouterJobUnassigned",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
assignmentId |
string |
❌ |
|
|
trabalhadorId |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
queueId |
string |
✔️ |
|
null quando classificationPolicyId é especificado para um trabalho |
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
Microsoft.Communication.RouterJobWaitingForActivation
Voltar ao Catálogo de Eventos
{
"id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelId": "FooVoiceChannelId",
"channelReference": "test-abc",
"queueId": "queue-id",
"priority": 1,
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"requestedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
],
"attachedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
],
"scheduledOn": "2022-02-17T00:55:25.1736293Z",
"unavailableForMatching": false
},
"eventType": "Microsoft.Communication.RouterJobWaitingForActivation",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
queueId |
string |
✔️ |
|
null quando classificationPolicyId é especificado para um trabalho |
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
requestedWorkerSelectorsExpired |
List<WorkerSelector> |
✔️ |
|
Com base na entrada do usuário durante a criação de um trabalho |
attachedWorkerSelectorsExpired |
List<WorkerSelector> |
✔️ |
|
Lista dos seletores de trabalhadores anexada por uma política de classificação |
agendadoOn |
DateTimeOffset |
✔️ |
|
Com base na entrada do usuário durante a criação de um trabalho |
unavailableForMatching |
bool |
✔️ |
|
Com base na entrada do usuário durante a criação de um trabalho |
prioridade |
int |
❌ |
|
Com base na entrada do usuário durante a criação de um trabalho |
Microsoft.Communication.RouterJobSchedulingFailed
Voltar ao Catálogo de Eventos
{
"id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "job/{job-id}/channel/{channel-id}",
"data": {
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelId": "FooVoiceChannelId",
"channelReference": "test-abc",
"queueId": "queue-id",
"priority": 1,
"labels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"requestedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
],
"attachedWorkerSelectors": [
{
"key": "string",
"labelOperator": "equal",
"value": 5,
"ttlSeconds": 60.0
}
],
"scheduledOn": "2022-02-17T00:55:25.1736293Z",
"failureReason": "Error"
},
"eventType": "Microsoft.Communication.RouterJobSchedulingFailed",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
jobId |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
queueId |
string |
✔️ |
|
null quando classificationPolicyId é especificado para um trabalho |
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
requestedWorkerSelectorsExpired |
List<WorkerSelector> |
✔️ |
|
Com base na entrada do usuário durante a criação de um trabalho |
attachedWorkerSelectorsExpired |
List<WorkerSelector> |
✔️ |
|
Lista dos seletores de trabalhadores anexada por uma política de classificação |
agendadoOn |
DateTimeOffset |
✔️ |
|
Com base na entrada do usuário durante a criação de um trabalho |
falhaRazão |
string |
✔️ |
|
Sistema determinado |
prioridade |
int |
❌ |
|
Com base na entrada do usuário durante a criação de um trabalho |
Eventos do trabalhador
Microsoft.Communication.RouterWorkerOfferIssued
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}/job/{job-id}",
"data": {
"workerId": "w100",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
"offerId": "525fec06-ab81-4e60-b780-f364ed96ade1",
"offeredOn": "2021-06-23T02:43:30.3847144Z",
"expiresOn": "2021-06-23T02:44:30.3847674Z",
"jobPriority": 5,
"jobLabels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"jobTags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
}
},
"eventType": "Microsoft.Communication.RouterWorkerOfferIssued",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
offerId |
string |
❌ |
|
|
oferecidoOn |
DateTimeOffset |
❌ |
|
|
expira |
DateTimeOffset |
❌ |
|
|
jobPrioridade |
int |
❌ |
|
|
jobRótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
jobTags |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
Microsoft.Communication.RouterWorkerOfferAccepted
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}/job/{job-id}",
"data": {
"workerId": "w100",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"jobPriority": 5,
"jobLabels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"jobTags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"workerLabels": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"workerTags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
"offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
"assignmentId": "765fec06-ab81-4e60-b780-f364ed96ade1"
},
"eventType": "Microsoft.Communication.RouterWorkerOfferAccepted",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
jobPrioridade |
int |
❌ |
|
|
jobRótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
jobTags |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
trabalhadoresRótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
workerTags |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
offerId |
string |
❌ |
|
|
assignmentId |
string |
❌ |
|
|
Microsoft.Communication.RouterWorkerOfferDeclined
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}/job/{job-id}",
"data": {
"workerId": "w100",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
"offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
},
"eventType": "Microsoft.Communication.RouterWorkerOfferDeclined",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
offerId |
string |
❌ |
|
|
Microsoft.Communication.RouterWorkerOfferRevoked
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}/job/{job-id}",
"data": {
"offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
"workerId": "w100",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1"
},
"eventType": "Microsoft.Communication.RouterWorkerOfferRevoked",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
offerId |
string |
❌ |
|
|
trabalhadorId |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
Microsoft.Communication.RouterWorkerOfferExpired
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}/job/{job-id}",
"data": {
"offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
"workerId": "w100",
"jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
"channelReference": "test-abc",
"channelId": "FooVoiceChannelId",
"queueId": "625fec06-ab81-4e60-b780-f364ed96ade1"
},
"eventType": "Microsoft.Communication.RouterWorkerOfferExpired",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
offerId |
string |
❌ |
|
|
jobId |
string |
❌ |
|
|
channelReference |
string |
❌ |
|
|
channelId |
string |
❌ |
|
|
queueId |
string |
❌ |
|
|
Microsoft.Communication.RouterWorkerRegistered
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}",
"data": {
"workerId": "worker3",
"totalCapacity": 100,
"queueAssignments": [
{
"id": "MyQueueId2",
"name": "Queue 3",
"labels": {
"Language": "en",
"Product": "Office",
"Geo": "NA"
}
}
],
"labels": {
"x": "111",
"y": "111"
},
"channelConfigurations": [
{
"channelId": "FooVoiceChannelId",
"capacityCostPerJob": 10,
"maxNumberOfJobs": 5
}
],
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
}
},
"eventType": "Microsoft.Communication.RouterWorkerRegistered",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
Capacidade total |
int |
❌ |
|
|
filaAtribuições |
List<QueueDetails> |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
channelConfigurations |
List<ChannelConfiguration> |
❌ |
|
|
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
Microsoft.Communication.RouterWorkerUpdated
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}",
"data": {
"workerId": "worker3",
"availableForOffers": true,
"totalCapacity": 100,
"queueAssignments": [
{
"id": "MyQueueId2",
"name": "Queue 3",
"labels": {
"Language": "en",
"Product": "Office",
"Geo": "NA"
}
}
],
"labels": {
"x": "111",
"y": "111"
},
"channelConfigurations": [
{
"channelId": "FooVoiceChannelId",
"capacityCostPerJob": 10,
"maxNumberOfJobs": 5
}
],
"tags": {
"Locale": "en-us",
"Segment": "Enterprise",
"Token": "FooToken"
},
"updatedWorkerProperties": [
"TotalCapacity",
"Labels",
"Tags",
"ChannelConfigurations",
"AvailableForOffers",
"QueueAssignments"
]
},
"eventType": "Microsoft.Communication.RouterWorkerUpdated",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
Capacidade total |
int |
❌ |
|
|
filaAtribuições |
List<QueueDetails> |
❌ |
|
|
rótulos |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
channelConfigurations |
List<ChannelConfiguration> |
❌ |
|
|
etiquetas |
Dictionary<string, object> |
✔️ |
|
Com base na entrada do usuário |
updatedWorkerProperties |
List<UpdateWorkerProperty> |
❌ |
Propriedades do trabalhador atualizadas, incluindo AvailableForOffers, QueueAssignments, ChannelConfigurations, TotalCapacity, Labels e Tags |
|
Microsoft.Communication.RouterWorkerDeregistered
Voltar ao Catálogo de Eventos
{
"id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
"subject": "worker/{worker-id}",
"data": {
"workerId": "worker3"
},
"eventType": "Microsoft.Communication.RouterWorkerDeregistered",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Lista de atributos
Atributo |
Type |
Que podem ser nulos |
Description |
Notas |
trabalhadorId |
string |
❌ |
|
|
Definições de modelo
QueueDetails
public class QueueDetails
{
public string Id { get; set; }
public string Name { get; set; }
public Dictionary<string, object>? Labels { get; set; }
}
Erro de comunicação
public class CommunicationError
{
public string? Code { get; init; }
public string Message { get; init; }
public string? Target { get; init; }
public CommunicationError? InnerError { get; init; }
public IEnumerable<CommunicationError>? Details { get; init; }
}
ChannelConfiguration
public class ChannelConfiguration
{
public string ChannelId { get; set; }
public int CapacityCostPerJob { get; set; }
public int? MaxNumberOfJobs { get; set; }
}
UpdatedWorkerProperty
public enum UpdatedWorkerProperty
{
AvailableForOffers,
Capacity,
QueueAssignments,
Labels,
Tags,
ChannelConfigurations
}
WorkerSelector
public class WorkerSelector
{
public string Key { get; set; }
public LabelOperator LabelOperator { get; set; }
public object Value { get; set; }
public double? TTLSeconds { get; set; }
public WorkerSelectorState State { get; set; }
public DateTimeOffset? ExpirationTime { get; set; }
}
public enum WorkerSelectorState
{
Active = 0,
Expired = 1
}
public enum LabelOperator
{
Equal,
NotEqual,
LessThan,
LessThanEqual,
GreaterThan,
GreaterThanEqual,
}