Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Utvecklare | Grundläggande | Standard | Premie
Principen send-service-bus-message skickar ett meddelande till en Azure Service Bus-kö eller ett ämne. Du kan valfritt vidarebefordra API-förfrågan till backend-tjänsten.
Anmärkning
- Bakgrund och förutsättningar för att skicka meddelanden till Azure Service Bus finns i Så här skickar du meddelanden till Azure Service Bus från Azure API Management.
Anmärkning
Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.
Principuttryck
<send-service-bus-message
queue-name="service bus queue"
topic-name="service bus topic"
namespace="FQDN of service bus namespace"
client-id="ID of user-assigned managed identity"
message-id="message ID"
session-id="session ID"
time-to-live="message time to live"
response-variable-name="context variable name"
ignore-error="false">
<message-properties>
<message-property name="property-name">property-value</message-property>
<!-- if there are multiple properties, then add additional message-property elements -->
</message-properties>
<payload>"message content"</payload>
</send-service-bus-message>
Attributes
| Attribute | Description | Krävs | Förinställning |
|---|---|---|---|
queue-name |
Anger namnet på service bus-kön som meddelandet ska skickas till. Principuttryck och namngivna värden tillåts. Antingen queue-name eller topic-name måste anges. |
Nej | N/A |
topic-name |
Anger namnet på det Service Bus-ämne som meddelandet ska skickas till. Principuttryck och namngivna värden tillåts. Antingen queue-name eller topic-name måste anges. |
Nej | N/A |
namespace |
Anger det fullständigt kvalificerade domännamnet för Service Bus-namnområdet. Principuttryck och namngivna värden tillåts. | Nej | N/A |
client-id |
Anger klient-ID för den användartilldelade hanterade identiteten som ska autentiseras med Service Bus. Identiteten måste tilldelas rollen Azure Service Bus Data Sender. Principuttryck och namngivna värden tillåts. Om du inte specificerar detta attribut används den systemtilldelade identiteten. | Nej | N/A |
message-id |
Meddelandeidentifierare. Det måste vara en giltig GUID. Principuttryck tillåts. Om den utelämnas genererar API Management en GUID. | Nej | Genererad GUID |
session-id |
Service Bus-sessionsidentifierare som används för att gruppera relaterade meddelanden. Det måste vara en giltig GUID. Principuttryck tillåts. | Nej | N/A |
time-to-live |
Hur länge meddelandet är tillgängligt för bearbetning innan det går ut? Använd till exempel 00:10:00ett TimeSpan-värde. |
Nej | N/A |
response-variable-name |
Namnet på en kontextvariabel som tar emot information om Service Bus-sändningsoperationen. | Nej | N/A |
ignore-error |
Om ett Service Bus-skickafel bör tillåta policyutförandet att fortsätta.
true = fortsätt; false = anropa normal felhantering. |
Nej | false |
Anmärkning
När du specificerar response-variable-name, lagrar API Management information om Service Bus send-operationen i den kontextvariabeln. Vid framgång innehåller MessageIdden , SessionId, och TimeToLive. Vid ett ignorerat sändningsfel innehåller Error.Reason den och Error.Message.
Elements
| Komponent | Description | Krävs |
|---|---|---|
payload |
Anger den meddelandenyttolast som ska skickas till Service Bus. Principuttryck och namngivna värden tillåts. | Yes |
message-properties |
En samling message-property underelement som anger metadata som ska skickas med meddelandets nyttolast. Var och message-property en består av ett namn/värde-par. Principuttryck och namngivna värden tillåts. |
Nej |
Usage
- Principavsnitt: inkommande, utgående, on-error
- Principomfattningar: global, produkt, API, åtgärd
- Gatewayer: klassisk
Användningsanteckningar
- Du måste skapa Azure Service Bus-kön eller ämnet som tar emot ett meddelande i förväg.
- Du kan använda den här principen flera gånger per principdefinition.
- Om du utelämnar
message-id, genererar API Management en GUID. - Konfigurerade
message-idochsession-idvärden måste vara giltiga GUID:er. - Använd
session-idnär Service Bus-enheten kräver sessioner. -
time-to-liveanvänder ettTimeSpanvärde som00:10:00. -
ignore-errorgäller för skicka-misslyckanden. Ogiltig meddelandekonfiguration, såsom en ogiltig GUID eller TTL, orsakar fortfarande policyfel.
Examples
Skicka ett meddelande till en Service Bus-kö
I detta exempel skickas ett meddelande bestående av förfrågningskroppen till orderkön. Förfrågnings-ID:t blir meddelande-ID:t, meddelandet går ut efter 10 minuter och sändningsinformationen lagras i serviceBusResult. Ett sändningsfel anropar API Management-felhantering. API Management-instansen använder en användartilldelad identitet för åtkomst. Begäran vidarebefordras sedan till serverdelstjänsten.
<policies>
<inbound>
<send-service-bus-message
queue-name="orders"
namespace="contoso-messaging.servicebus.windows.net"
message-id="@(context.RequestId.ToString())"
time-to-live="00:10:00"
response-variable-name="serviceBusResult"
ignore-error="false">
<payload>
@(context.Request.Body.As<string>(preserveContent: true))
</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Skicka ett meddelande till ett Service Bus-ämne
I detta exempel skickar du ett meddelande som innehåller förfrågningskroppen till ett servicebussämne. API Management-instansen använder en systemtilldelad identitet för åtkomst. Sedan vidarebefordrar du förfrågan till backend-tjänsten.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Skicka ett meddelande och metadata
I detta exempel skickar du ett meddelande som innehåller begäransökaren till ett servicebussämne och sätter en meddelandeegenskap för att skicka metadata med nyttolasten. API Management-instansen använder en systemtilldelad identitet för åtkomst. Sedan vidarebefordrar du förfrågan till backend-tjänsten.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<message-properties>
<message-property name="Customer">Contoso</message-property>
</message-properties>
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Skicka meddelande och returnera omedelbart
I detta exempel skickar du ett meddelande som innehåller förfrågningskroppen till ett servicebussämne. API Management-instansen använder en systemtilldelad identitet för åtkomst. Sedan returnerar du omedelbart en 201 svarsstatuskod till den som ringer.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
<return-response>
<set-status code="201" reason="Created!" />
</return-response>
</inbound>
</policies>
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Regelningsreferens för en komplett lista över regleringsdeklarationer och deras inställningar
- Policyuttryck
- Ange eller redigera principer
- Återanvända policykonfigurationer
- Lagringsplats för principfragment
- Policy-exempellagringsplats
- Policyverktyg för Azure API Management
- Få Hjälp med Copilot för att skapa, förklara och felsöka principer