AMQP 1.0 no Barramento de Serviço do Microsoft Azure: operações baseadas em solicitação-resposta
Este artigo define a lista de operações baseadas em solicitação/resposta do Barramento de Serviço do Microsoft Azure. Estas informações baseiam-se no rascunho funcional do Gerenciamento de AMQP Versão 1.0.
Para um guia de protocolo AMQP 1.0 detalhado no nível de transmissão, que explica como o Barramento de Serviço implementa e se baseia na especificação técnica AMQP OASIS, confira o AMQP 1.0 no guia de protocolo do Barramento de Serviço do Azure e dos Hubs de Eventos.
Conceitos
ServiceBusReceivedMessage / ServiceBusMessage
Representa uma mensagem no Barramento de Serviço, que é mapeada para uma mensagem AMQP. O mapeamento é definido no guia de protocolo do AMQP no Barramento de Serviço.
Anexar ao nó de gerenciamento de entidades
Todas as operações descritas neste documento seguem um padrão de solicitação/resposta, estão dentro do escopo de uma entidade e exigem a anexação a um nó de gerenciamento de entidades.
Criar link para enviar solicitações
Cria um link para o envio de solicitações do nó de gerenciamento.
requestLink = session.attach(
role: SENDER,
target: { address: "<entity address>/$management" },
source: { address: ""<my request link unique address>" }
)
Criar link para receber respostas
Cria um link para receber as respostas do nó de gerenciamento.
responseLink = session.attach(
role: RECEIVER,
source: { address: "<entity address>/$management" }
target: { address: "<my response link unique address>" }
)
Transferir uma mensagem de solicitação
Transfere uma mensagem de solicitação.
Um estado de transação pode ser adicionado, opcionalmente, para operações que dão suporte a transações.
requestLink.sendTransfer(
Message(
properties: {
message-id: <request id>,
reply-to: "<my response link unique address>"
},
application-properties: {
"operation" -> "<operation>",
}
),
[Optional] State = transactional-state: {
txn-id: <txn-id>
}
)
Receber uma mensagem de resposta
Recebe a mensagem de resposta do link de resposta.
responseMessage = responseLink.receiveTransfer()
A mensagem de resposta está no seguinte formato:
Message(
properties: {
correlation-id: <request id>
},
application-properties: {
"statusCode" -> <status code>,
"statusDescription" -> <status description>,
},
)
Endereço de entidade do Barramento de Serviço
As entidades do Barramento de Serviço devem ser abordadas da seguinte maneira:
Tipo de entidade | Endereço | Exemplo |
---|---|---|
fila | <queue_name> |
“myQueue” “site1/myQueue” |
topic | <topic_name> |
“myTopic” “site2/page1/myQueue” |
subscription | <topic_name>/Subscriptions/<subscription_name> |
“myTopic/Subscriptions/MySub” |
Operações de mensagem
Renovar Bloqueio da Mensagem
Estende o bloqueio de uma mensagem pela duração do bloqueio definida na fila ou assinatura.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:renew-lock |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
lock-tokens |
matriz de uuid | Sim | Tokens de bloqueio de mensagem a serem renovados. |
Observação
O token de bloqueio aqui se refere à propriedade delivery-tag
na mensagem AMQP recebida. Se você recebeu uma mensagem adiada e deseja renovar seu bloqueio, use a propriedade lock-token
na mensagem em vez de delivery-tag
.
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha. |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
expirations | matriz de carimbo de data/hora | Sim | Nova expiração do token de bloqueio de mensagem correspondente aos tokens de bloqueio da solicitação. |
Espiar mensagem
Espia mensagens sem bloqueio.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:peek-message |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
from-sequence-number |
long | Sim | Número de sequência do qual a espiada será iniciada. |
message-count |
INT | Sim | Número máximo de mensagens a serem espiadas. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – tem mais mensagens 204: sem conteúdo – não há mais mensagens |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
da nuvem para o dispositivo | lista de mapas | Sim | Lista de mensagens na qual cada mapa representa uma mensagem. |
O mapa que representa uma mensagem deve conter as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
message | matriz de bytes | Sim | Mensagem codificada por transmissão AMQP 1.0. |
Agendar mensagem
Agenda mensagens. Esta operação oferece suporte a transações.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:schedule-message |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
da nuvem para o dispositivo | lista de mapas | Sim | Lista de mensagens na qual cada mapa representa uma mensagem. |
O mapa que representa uma mensagem deve conter as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
message-id | string | Sim | amqpMessage.Properties.MessageId como uma cadeia de caracteres |
session-id | string | No | amqpMessage.Properties.GroupId as string |
partition-key | Cadeia de caracteres | No | amqpMessage.MessageAnnotations.”x-opt-partition-key" |
chave por meio de partição | Cadeia de caracteres | No | amqpMessage.MessageAnnotations."x-opt-via-partition-key" |
message | matriz de bytes | Sim | Mensagem codificada por transmissão AMQP 1.0. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha. |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
sequence-numbers | matriz de long | Sim | Número de sequência das mensagens agendadas. O número de sequência é usado para cancelar. |
Cancelar mensagem agendada
Cancela as mensagens agendadas.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:cancel-scheduled-message |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
sequence-numbers | matriz de long | Sim | Números de sequência das mensagens agendadas a serem canceladas. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha. |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
Operações da sessão
Renovar Bloqueio da Sessão
Estende o bloqueio de uma mensagem pela duração do bloqueio definida na fila ou assinatura.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:renew-session-lock |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
session-id | string | Yes | ID da sessão. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – tem mais mensagens 204: sem conteúdo – não há mais mensagens |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
expiração | timestamp | Sim | Nova expiração. |
Espirar Mensagem da Sessão
Espia as mensagens da sessão sem bloqueio.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:peek-message |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
from-sequence-number | long | Sim | Número de sequência do qual a espiada será iniciada. |
message-count | INT | Sim | Número máximo de mensagens a serem espiadas. |
session-id | string | Yes | ID da sessão. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – tem mais mensagens 204: sem conteúdo – não há mais mensagens |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
da nuvem para o dispositivo | lista de mapas | Sim | Lista de mensagens na qual cada mapa representa uma mensagem. |
O mapa que representa uma mensagem deve conter as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
message | matriz de bytes | Sim | Mensagem codificada por transmissão AMQP 1.0. |
Definir Estado de Sessão
Define o estado de uma sessão.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:set-session-state |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
session-id | string | Yes | ID da sessão. |
session-state | matriz de bytes | Sim | Dados binários opacos. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
Obter Estado de Sessão
Obtém o estado de uma sessão.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:get-session-state |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
session-id | string | Yes | ID da sessão. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
session-state | matriz de bytes | Sim | Dados binários opacos. |
Enumerar Sessões
Enumera as sessões em uma entidade de mensagens.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:get-message-sessions |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
last-updated-time | timestamp | Sim | Um filtro para incluir apenas as sessões atualizadas após determinado tempo. |
skip | INT | Sim | Ignore um número de sessões. |
top | INT | Sim | Número máximo de sessões. |
Observação
Quando você define LastUpdatedTime
como DateTime.MaxValue
(no .NET), o método Enumerar Sessões retorna todas as sessões, independentemente de terem estado ou não. DateTime.MaxValue
no .NET pode não existir em outras linguagens de programação. Nesses casos, use um carimbo de data/hora igual a 253402300800000
milissegundos da Época (1º de janeiro de 1970, 00:00:00 GMT), que é equivalente a DateTime.MaxValue
no .NET.
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – tem mais mensagens 204: sem conteúdo – não há mais mensagens |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
skip | INT | Sim | Número de sessões ignoradas se o código de status for 200. |
sessions-ids | Matriz de cadeias de caracteres | Sim | Matriz de IDs de sessão se o código de status for 200. |
Operações de regra
Adicionar regra
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:add-rule |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
rule-name | string | Yes | Nome da regra, não incluindo nomes de tópico e assinatura. |
rule-description | map | Sim | Descrição da regra, conforme especificado na próxima seção. |
O mapa rule-description deve incluir as seguintes entradas, em que sql-filter e correlation-filter são mutuamente exclusivos:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
sql-filter | map | Sim | sql-filter , conforme especificado na próxima seção. |
correlation-filter | map | Sim | correlation-filter , conforme especificado na próxima seção. |
sql-rule-action | map | Sim | sql-rule-action , conforme especificado na próxima seção. |
O mapa sql-filter deve incluir as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
expressão | string | Yes | Expressão de filtro SQL. |
O mapa correlation-filter deve incluir, pelo menos, uma das seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
correlation-id | string | No | |
message-id | string | Não | |
para | string | No | |
reply-to | Cadeia de caracteres | No | |
label | Cadeia de caracteres | No | |
session-id | string | No | |
reply-to-session-id | Cadeia de caracteres | No | |
content-type | Cadeia de caracteres | No | |
properties | mapa | Não | Mapeia para o Barramento de Serviço ServiceBusMessage.Properties |
O mapa sql-rule-action deve incluir as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
expressão | string | Yes | Expressão de ação do SQL. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
Remover Regra
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:remove-rule |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
rule-name | string | Yes | Nome da regra, não incluindo nomes de tópico e assinatura. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
Obter regras
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:enumerate-rules |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
top | INT | Sim | O número de regras para buscar na página. |
skip | INT | Sim | O número de regras a serem ignoradas. Define o índice inicial (+ 1) na lista de regras. |
Resposta
O mensagem de resposta inclui as seguintes propriedades:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
regras | lista de mapas | Sim | Lista de regras. Cada regra é representada por um mapa. |
Cada entrada de mapa na lista inclui as seguintes propriedades:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
rule-description | objeto descrito | Sim | com.microsoft:rule-description com AMQP descrito código 0x0000013700000004 |
com.microsoft.rule-description
em si é uma lista descrita. Ele tem as seguintes propriedades:
Índice | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
0 | lista descrita | Sim | filter , conforme especificado na próxima tabela. |
1 | lista descrita | Sim | ruleAction , conforme especificado posteriormente nesta seção. |
2 | string | Yes | nome da regra. |
3 | timestamp | Sim | carimbo de data/hora. |
filter
pode ser de qualquer um dos seguintes tipos:
Nome do descritor | Código do descritor | Valor |
---|---|---|
com.microsoft:sql-filter:list |
0x000001370000006 | Filtro SQL |
com.microsoft:correlation-filter:list |
0x000001370000009 | Filtro de correlação |
com.microsoft:true-filter:list |
0x000001370000007 | Filtro True que representa 1=1 |
com.microsoft:false-filter:list |
0x000001370000008 | Filtro False que representa 1=0 |
com.microsoft:sql-filter:list
é uma lista descrita, que inclui:
Índice | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
0 | string | Yes | Expressão de filtro SQL |
1 | INT | Sim | sempre 20. Esse inteiro é o nível de compatibilidade do filtro sql. Indica a versão de sintaxe do filtro sql. |
com.microsoft:correlation-filter:list
é uma lista descrita, que inclui:
Índice (se existir) | Tipo de valor | Conteúdo de valor |
---|---|---|
0 | string | ID de Correlação |
1 | string | ID da mensagem |
2 | string | Para |
3 | string | Responder Para |
4 | string | Label |
5 | string | ID da sessão |
6 | string | ID da Sessão Responder Para |
7 | string | Tipo de conteúdo |
8 | Mapeamento | Mapa de propriedades de aplicativo definido |
ruleAction
pode ser de qualquer um dos seguintes tipos:
Nome do descritor | Código do descritor | Valor |
---|---|---|
com.microsoft:empty-rule-action:list |
0x0000013700000005 | Ação de regra vazia - nenhuma ação de regra presente |
com.microsoft:sql-rule-action:list |
0x0000013700000006 | Ação de regra SQL |
com.microsoft:sql-rule-action:list
é uma lista descrita que tem dois elementos.
Índice | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
0 | string | Sim | Expressão da ação de regra SQL |
1 | INT | Sim | sempre 20. Esse inteiro é o nível de compatibilidade do filtro sql. Indica a versão de sintaxe do filtro sql. |
Operações de mensagem adiada
Receber pelo número de sequência
Recebe as mensagens adiadas por número de sequência.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:receive-by-sequence-number |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
sequence-numbers | matriz de long | Sim | Números de sequência. |
receiver-settle-mode | ubyte | Sim | Modo de liquidação do receptor, conforme especificado no AMQP Core v1.0. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
O corpo da mensagem de resposta deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
da nuvem para o dispositivo | lista de mapas | Sim | Lista de mensagens, em que cada mapa representa uma mensagem. |
O mapa que representa uma mensagem deve conter as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
lock-token | uuid | Sim | Token de bloqueio se receiver-settle-mode for 1. |
message | matriz de bytes | Sim | Mensagem codificada por transmissão AMQP 1.0. |
Atualizar status de disposição
Atualiza o status de disposição das mensagens adiadas. Esta operação oferece suporte a transações.
Solicitação
A mensagem de solicitação deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
operation | string | Sim | com.microsoft:update-disposition |
com.microsoft:server-timeout |
uint | Não | Tempo limite da operação no servidor em milissegundos. |
O corpo da mensagem de solicitação deve consistir em uma seção amqp-value que contém um mapa com as seguintes entradas:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
disposition-status | string | Sim | concluído abandonado suspenso |
lock-tokens | matriz de uuid | Sim | Tokens de bloqueio de mensagem para atualizar o status de disposição. |
deadletter-reason | Cadeia de caracteres | Não | É definido se o status de disposição estiver definido como suspenso. |
deadletter-description | Cadeia de caracteres | Não | É definido se o status de disposição estiver definido como suspenso. |
properties-to-modify | mapa | Não | Lista de propriedades de mensagem agenciada do Barramento de Serviço a serem modificadas. |
Resposta
A mensagem de resposta deve incluir as seguintes propriedades de aplicativo:
Chave | Tipo de valor | Obrigatório | Conteúdo de valor |
---|---|---|---|
statusCode | INT | Sim | Código de resposta HTTP [RFC2616] 200: OK – êxito; caso contrário, falha |
statusDescription | Cadeia de caracteres | No | A descrição do status. |
Próximas etapas
Para saber mais sobre o AMQP e o Barramento de Serviço, visite os seguintes links: