Sdílet prostřednictvím


AMQP 1.0 v Microsoft Azure Service Bus: operace založené na žádostech

Tento článek definuje seznam operací založených na žádostech a odpovědích microsoft Azure Service Bus. Tyto informace vycházejí z pracovního konceptu správy AMQP verze 1.0.

Podrobný průvodce protokolem AMQP na úrovni drátu 1.0, který vysvětluje, jak Service Bus implementuje a staví na technické specifikaci OASIS AMQP, najdete v průvodci protokolem AMQP 1.0 služby Azure Service Bus a Event Hubs.

Koncepty

ServiceBusReceivedMessage / ServiceBusMessage

Představuje zprávu ve službě Service Bus, která je namapovaná na zprávu AMQP. Mapování se definuje v průvodci protokolem AMQP služby Service Bus.

Připojení k uzlu správy entit

Všechny operace popsané v tomto dokumentu se řídí vzorem žádosti a odpovědi, jsou vymezeny na entitu a vyžadují připojení k uzlu správy entit.

Vytvoří odkaz na uzel správy pro odesílání požadavků.

requestLink = session.attach(
role: SENDER,
   	target: { address: "<entity address>/$management" },
   	source: { address: ""<my request link unique address>" }
)

Vytvoří odkaz pro příjem odpovědí z uzlu pro správu.

responseLink = session.attach(
role: RECEIVER,
	source: { address: "<entity address>/$management" }
   	target: { address: "<my response link unique address>" }
)

Přenos zprávy žádosti

Přenese zprávu požadavku.
Stav transakce lze volitelně přidat pro operace, které podporují transakce.

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

Přijetí zprávy s odpovědí

Přijme zprávu odpovědi z odkazu na odpověď.

responseMessage = responseLink.receiveTransfer()

Zpráva odpovědi je v následujícím formátu:

Message(
properties: {
		correlation-id: <request id>
	},
	application-properties: {
			"statusCode" -> <status code>,
			"statusDescription" -> <status description>,
           },
)

Adresa entity služby Service Bus

Entity služby Service Bus musí být vyřešeny následujícím způsobem:

Typ entity Adresa Příklad
fronta <queue_name> “myQueue”

“site1/myQueue”
topic <topic_name> “myTopic”

“site2/page1/myQueue”
předplatné <topic_name>/Subscriptions/<subscription_name> “myTopic/Subscriptions/MySub”

Operace se zprávami

Zámek pro prodloužení platnosti zprávy

Rozšíří zámek zprávy o době uzamčení nastavené ve frontě nebo odběru.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:renew-lock
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
lock-tokens pole uuid Ano Obnovte tokeny zámku zpráv.

Poznámka:

Token zámku zde odkazuje na delivery-tag vlastnost přijaté zprávy AMQP. Pokud jste obdrželi odloženou zprávu a chcete obnovit její zámek, použijte vlastnost lock-token ve zprávě místo delivery-tag.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal.
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
Vyprchávání pole časového razítka Ano Nové vypršení platnosti tokenu zámku zprávy odpovídající tokenům uzamčení požadavku

Náhled zprávy

Náhled zpráv bez uzamčení

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:peek-message
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
from-sequence-number long Ano Pořadové číslo, od kterého chcete začít náhled.
message-count int Ano Maximální počet zpráv, které se mají prohlédnout.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – má více zpráv

204: Žádný obsah – žádné další zprávy
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
zprávy seznam map Ano Seznam zpráv, ve kterých každá mapa představuje zprávu

Mapa představující zprávu musí obsahovat následující položky:

Klíč Typ hodnoty Požaduje se Obsah hodnot
zpráva pole bajtů Ano Zpráva s kódováním drátu AMQP 1.0

Naplánovat zprávu

Naplánuje zprávy. Tato operace podporuje transakci.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:schedule-message
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
zprávy seznam map Ano Seznam zpráv, ve kterých každá mapa představuje zprávu

Mapa představující zprávu musí obsahovat následující položky:

Klíč Typ hodnoty Požaduje se Obsah hodnot
message-id string Ano amqpMessage.Properties.MessageId jako řetězec
id relace string No amqpMessage.Properties.GroupId as string
partition-key string No amqpMessage.MessageAnnotations.”x-opt-partition-key"
via-partition-key string No amqpMessage.MessageAnnotations."x-opt-via-partition-key"
zpráva pole bajtů Ano Zpráva s kódováním drátu AMQP 1.0

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal.
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
pořadová čísla pole dlouhé Ano Pořadové číslo naplánovaných zpráv Pořadové číslo slouží ke zrušení.

Zrušit naplánovanou zprávu

Zruší naplánované zprávy.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:cancel-scheduled-message
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
pořadová čísla pole dlouhé Ano Pořadová čísla naplánovaných zpráv, které se mají zrušit.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal.
statusDescription string No Popis stavu

Operace relací

Zámek pro prodloužení platnosti relace

Rozšíří zámek zprávy o době uzamčení nastavené ve frontě nebo odběru.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:renew-session-lock
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
id relace string Ano ID relace.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – má více zpráv

204: Žádný obsah – žádné další zprávy
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
vypršení platnosti časové razítko Ano Nové vypršení platnosti

Náhled zprávy relace

Náhled zpráv relace bez uzamčení

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:peek-message
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
from-sequence-number long Ano Pořadové číslo, od kterého chcete začít náhled.
počet zpráv int Ano Maximální počet zpráv, které se mají prohlédnout.
id relace string Ano ID relace.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – má více zpráv

204: Žádný obsah – žádné další zprávy
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
zprávy seznam map Ano Seznam zpráv, ve kterých každá mapa představuje zprávu

Mapa představující zprávu musí obsahovat následující položky:

Klíč Typ hodnoty Požaduje se Obsah hodnot
zpráva pole bajtů Ano Zpráva s kódováním drátu AMQP 1.0

Nastavit stav relace

Nastaví stav relace.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:set-session-state
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
id relace string Ano ID relace.
session-state pole bajtů Ano Neprůsvědná binární data.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
statusDescription string No Popis stavu

Získání stavu relace

Získá stav relace.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:get-session-state
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
id relace string Ano ID relace.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
session-state pole bajtů Ano Neprůsvědná binární data.

Vytvoření výčtu relací

Vytvoří výčet relací u entity zasílání zpráv.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:get-message-sessions
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
čas poslední aktualizace časové razítko Ano Filtr tak, aby zahrnoval pouze relace aktualizované po daném čase.
skip int Ano Přeskočte řadu relací.
nejlepší int Ano Maximální počet relací

Poznámka:

Pokud nastavíte LastUpdatedTimeDateTime.MaxValue hodnotu (v .NET), vrátí metoda Výčtu relací všechny relace bez ohledu na to, zda mají stav, nebo ne. DateTime.MaxValue v .NET nemusí existovat v jiných programovacích jazycích. V takových případech použijte časové razítko, které se rovná 253402300800000 milisekundům epochy (1. ledna 1970, 00:00:00 GMT), což odpovídá DateTime.MaxValue v .NET.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – má více zpráv

204: Žádný obsah – žádné další zprávy
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
skip int Ano Počet přeskočených relací, pokud je stavový kód 200.
sessions-ids pole řetězců Ano Pole ID relací, pokud je stavový kód 200.

Operace pravidel

Přidat pravidlo

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:add-rule
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
rule-name string Ano Název pravidla, který nezahrnuje názvy předplatných a témat.
rule-description map Ano Popis pravidla uvedený v další části

Mapa popisu pravidla musí obsahovat následující položky, kde se vzájemně vylučují sql-filter a korelační filtr :

Klíč Typ hodnoty Požaduje se Obsah hodnot
sql-filter map Ano sql-filter, jak je uvedeno v další části.
korelační filtr map Ano correlation-filter, jak je uvedeno v další části.
akce sql-rule-action map Ano sql-rule-action, jak je uvedeno v další části.

Mapování sql-filter musí obsahovat následující položky:

Klíč Typ hodnoty Požaduje se Obsah hodnot
výraz string Ano Výraz filtru SQL.

Mapa korelačního filtru musí obsahovat alespoň jednu z následujících položek:

Klíč Typ hodnoty Požaduje se Obsah hodnot
ID korelace string No
message-id string No
na string No
odpovědět na string No
popisek string No
id relace string No
reply-to-session-id string No
content-type string No
vlastnosti map No Mapy do služby Service Bus ServiceBusMessage.Properties

Mapování akcí sql-rule-action musí obsahovat následující položky:

Klíč Typ hodnoty Požaduje se Obsah hodnot
výraz string Ano Výraz akce SQL

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
statusDescription string No Popis stavu

Odebrat pravidlo

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:remove-rule
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
rule-name string Ano Název pravidla, který nezahrnuje názvy předplatných a témat.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
statusDescription string No Popis stavu

Získat pravidla

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:enumerate-rules
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
nejlepší int Ano Počet pravidel, která se mají načíst na stránce.
skip int Ano Počet pravidel, která se mají přeskočit. Definuje počáteční index (+1) v seznamu pravidel.

Response

Zpráva odpovědi obsahuje následující vlastnosti:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
pravidla seznam map Ano Seznam pravidel Každé pravidlo je reprezentováno mapou.

Každá položka mapy v seznamu obsahuje následující vlastnosti:

Klíč Typ hodnoty Požaduje se Obsah hodnot
rule-description popsaný objekt Ano com.microsoft:rule-description s popisem 0x0000013700000004 kódu AMQP

com.microsoft.rule-description samotný je popsaný seznam. Má následující vlastnosti:

Index Typ hodnoty Požaduje se Obsah hodnot
0 popsaný seznam Ano filter jak je uvedeno v další tabulce.
0 popsaný seznam Ano ruleAction jak je uvedeno dále v této části.
2 string Ano název pravidla.
3 časové razítko Ano časové razítko.

filter může být z některého z následujících typů:

Název popisovače Kód popisovače Hodnota
com.microsoft:sql-filter:list 0x000001370000006 Filtr SQL
com.microsoft:correlation-filter:list 0x000001370000009 Korelační filtr
com.microsoft:true-filter:list 0x000001370000007 Pravdivý filtr představující 1=1
com.microsoft:false-filter:list 0x000001370000008 Nepravdivý filtr představující 1=0

com.microsoft:sql-filter:list je popsaný seznam, který zahrnuje:

Index Typ hodnoty Požaduje se Obsah hodnot
0 string Ano Výraz sql Filter
0 int Ano vždy 20. Toto celé číslo je úroveň kompatibility filtru SQL. Označuje verzi syntaxe filtru SQL.

com.microsoft:correlation-filter:list je popsaný seznam, který zahrnuje:

Index (pokud existuje) Typ hodnoty Obsah hodnot
0 string ID korelace
0 string ID zprávy
2 string Záměr
3 string Odpovědět
4 string Popisek
5 string ID relace
6 string ID odpovědi na relaci
7 string Typ obsahu
8 Mapovat Mapa definovaných vlastností aplikace

ruleAction může být některý z následujících typů:

Název popisovače Kód popisovače Hodnota
com.microsoft:empty-rule-action:list 0x0000013700000005 Prázdná akce pravidla – není k dispozici žádná akce pravidla
com.microsoft:sql-rule-action:list 0x0000013700000006 Akce pravidla SQL

com.microsoft:sql-rule-action:list je popsaný seznam, který obsahuje dva prvky.

Index Typ hodnoty Požaduje se Obsah hodnot
0 string Ano Výraz akce pravidla SQL
0 int Ano vždy 20. Toto celé číslo je úroveň kompatibility filtru SQL. Označuje verzi syntaxe filtru SQL.

Operace odložených zpráv

Příjem podle pořadových čísel

Přijímá odložené zprávy podle pořadových čísel.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:receive-by-sequence-number
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
pořadová čísla pole dlouhé Ano Čísla.
režim s vyrovnáním přijímače ubyte Ano Režim vyrovnání přijímače , jak je uvedeno v jádru AMQP verze 1.0.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
statusDescription string No Popis stavu

Text zprávy odpovědi se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
zprávy seznam map Ano Seznam zpráv, ve kterých každá mapa představuje zprávu

Mapa představující zprávu musí obsahovat následující položky:

Klíč Typ hodnoty Požaduje se Obsah hodnot
lock-token Uuid Ano Zámek tokenu, pokud receiver-settle-mode je 1.
zpráva pole bajtů Ano Zpráva s kódováním drátu AMQP 1.0

Aktualizace stavu dispozice

Aktualizace stav dispozice odložených zpráv. Tato operace podporuje transakce.

Žádost

Zpráva požadavku musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
operation string Ano com.microsoft:update-disposition
com.microsoft:server-timeout uint No Časový limit operačního serveru v milisekundách

Text zprávy požadavku se musí skládat z oddílu amqp-value obsahujícího mapu s následujícími položkami:

Klíč Typ hodnoty Požaduje se Obsah hodnot
disposition-status string Ano dokončené

Opuštěné

Pozastavena
lock-tokens pole uuid Ano Tokeny zámku zpráv pro aktualizaci stavu dispozice.
deadletter-reason string No Nastaví se, pokud je stav dispozice nastavený na pozastavení.
deadletter-description string No Nastaví se, pokud je stav dispozice nastavený na pozastavení.
properties-to-modify map No Seznam vlastností zprostředkovaných zpráv služby Service Bus, které chcete upravit.

Response

Zpráva odpovědi musí obsahovat následující vlastnosti aplikace:

Klíč Typ hodnoty Požaduje se Obsah hodnot
statusCode int Ano Kód odpovědi HTTP [RFC2616]

200: OK – úspěch, jinak selhal
statusDescription string No Popis stavu

Další kroky

Další informace o AMQP a Service Bus najdete na následujících odkazech: