Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: Ontwikkelaar | Basic | Standaard | Premie
Het send-service-bus-message beleid verzendt een bericht naar een Azure Service Bus-wachtrij of -onderwerp. Je kunt het API-verzoek optioneel doorsturen naar de backend-service.
Opmerking
- Zie Berichten verzenden naar Azure Service Bus vanuit Azure API Management voor achtergrondinformatie en vereisten voor het verzenden van berichten naar Azure Service Bus.
Opmerking
Stel de elementen en onderliggende elementen van het beleid in volgens de volgorde die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.
Beleidsverklaring
<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 | Verplicht | Verstek |
|---|---|---|---|
queue-name |
Hiermee geeft u de naam van de service bus-wachtrij om het bericht naar te verzenden. Beleidsexpressies en benoemde waarden zijn toegestaan.
queue-name Of topic-name moet worden opgegeven. |
Nee. | N/A |
topic-name |
Hiermee geeft u de naam op van het Service Bus-onderwerp waar het bericht naartoe moet worden verzonden. Beleidsexpressies en benoemde waarden zijn toegestaan.
queue-name Of topic-name moet worden opgegeven. |
Nee. | N/A |
namespace |
Hiermee geeft u de volledig gekwalificeerde domeinnaam van de Service Bus-naamruimte. Beleidsexpressies en benoemde waarden zijn toegestaan. | Nee. | N/A |
client-id |
Hiermee geeft u de client-id van de door de gebruiker toegewezen beheerde identiteit op voor verificatie met service bus. Aan de identiteit moet de rol Azure Service Bus-gegevenszender worden toegewezen. Beleidsexpressies en benoemde waarden zijn toegestaan. Als je dit attribuut niet specificeert, wordt de systeem-toegewezen identiteit gebruikt. | Nee. | N/A |
message-id |
Bericht-id. Moet een geldige GUID zijn. Beleidsexpressies zijn toegestaan. Als het wordt weggelaten, genereert API Management een GUID. | Nee. | Gegenereerde GUID |
session-id |
Service Bus sessie-identificatie gebruikt om gerelateerde berichten te groeperen. Moet een geldige GUID zijn. Beleidsexpressies zijn toegestaan. | Nee. | N/A |
time-to-live |
Hoe lang het bericht beschikbaar blijft voor verwerking voordat het verloopt. Gebruik bijvoorbeeld een TimeSpan-waarde 00:10:00. |
Nee. | N/A |
response-variable-name |
Naam van een contextvariabele die informatie ontvangt over de Service Bus-verzendoperatie. | Nee. | N/A |
ignore-error |
Of een Service Bus send-fout zou moeten toestaan dat de uitvoering van het beleid kan doorgaan.
true = ga door; false = roep normale foutafhandeling aan. |
Nee. | false |
Opmerking
Wanneer je specificeertresponse-variable-name, slaat API Management informatie op over de Service Bus send-operatie in die contextvariabele. Bij succes bevat MessageIdhet , SessionId, en TimeToLive. Bij een genegeerde verzendfout bevat Error.Reason het en Error.Message.
Elements
| Onderdeel | Description | Verplicht |
|---|---|---|
payload |
Hiermee geeft u de nettolading van het bericht dat naar de servicebus moet worden verzonden. Beleidsexpressies en benoemde waarden zijn toegestaan. | Yes |
message-properties |
Een verzameling message-property subelementen die metagegevens opgeven die moeten worden doorgegeven met de nettolading van het bericht. Elk message-property bestaat uit een naam-waardepaar. Beleidsexpressies en benoemde waarden zijn toegestaan. |
Nee. |
Usage
- Beleidssecties: binnenkomend, uitgaand, on-error
- Beleidsbereiken: globaal, product, API, bewerking
- Gateways: klassiek
Gebruiksnotities
- U moet vooraf de Azure Service Bus-wachtrij of het onderwerp maken dat een bericht ontvangt.
- U kunt dit beleid meerdere keren per beleidsdefinitie gebruiken.
- Als je weglaat
message-id, genereert API Management een GUID. - Geconfigureerde
message-idensession-idwaarden moeten geldige GUID's zijn. - Gebruik
session-idwanneer de Service Bus-entiteit sessies nodig heeft. -
time-to-livegebruikt eenTimeSpanwaarde zoals00:10:00. -
ignore-errorgeldt voor verzendfouten. Ongeldige berichtconfiguratie, zoals een ongeldige GUID of TTL, veroorzaakt nog steeds een beleidsfout.
Voorbeelden
Een bericht verzenden naar een servicebuswachtrij
In dit voorbeeld wordt een bericht bestaande uit het verzoeklichaam naar de orderwachtrij gestuurd. De verzoek-ID wordt de bericht-ID, het bericht verloopt na 10 minuten, en verzendinformatie wordt opgeslagen in serviceBusResult. Een verzendfout roept API Management foutbehandeling aan. Het API Management-exemplaar maakt gebruik van een door de gebruiker toegewezen identiteit voor toegang. De aanvraag wordt vervolgens doorgestuurd naar de back-endservice.
<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>
Een bericht verzenden naar een Service Bus-onderwerp
In dit voorbeeld stuur je een bericht dat de requestbody bevat naar een servicebus-onderwerp. Het API Management-exemplaar maakt gebruik van een door het systeem toegewezen identiteit voor toegang. Vervolgens stuur je het verzoek door naar de backend-service.
<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>
Een bericht en metagegevens verzenden
In dit voorbeeld stuur je een bericht dat de requestbody bevat naar een servicebus-topic en stel je een berichteigenschap in om metadata met de payload te verzenden. Het API Management-exemplaar maakt gebruik van een door het systeem toegewezen identiteit voor toegang. Vervolgens stuur je het verzoek door naar de backend-service.
<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>
Bericht verzenden en onmiddellijk retourneren
In dit voorbeeld stuur je een bericht dat de requestbody bevat naar een servicebus-onderwerp. Het API Management-exemplaar maakt gebruik van een door het systeem toegewezen identiteit voor toegang. Vervolgens geef je direct een 201 responsstatuscode terug aan de beller.
<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>
Gerelateerd beleid
Verwante inhoud
Zie voor meer informatie over het werken met beleid:
- Zelfstudie: Uw API transformeren en beveiligen
- Beleidsreferentie voor een volledige lijst met beleidsverklaringen en hun configuraties
- Beleidsexpressies
- Beleid definiƫren of bijwerken
- Beleidsconfiguraties opnieuw gebruiken
- Beleidsfragmentenopslagplaats
- Policy-opslagplaats voor voorbeelden
- Azure API Management-beleidstoolkit
- Krijg hulp van Copilot bij het maken, uitleggen en oplossen van problemen met beleid.