Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Entwickler | Einfach | Standard | Prämie
Die send-service-bus-message Richtlinie sendet eine Nachricht an eine Azure Service Bus-Warteschlange oder ein Thema. Sie können die API-Anfrage optional an den Backend-Service weiterleiten.
Hinweis
- Hintergrundinformationen und Voraussetzungen zum Senden von Nachrichten an Azure Service Bus finden Sie unter "Senden von Nachrichten an Azure Service Bus von Azure API Management".
Hinweis
Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.
Richtlinienerklärung
<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>
Attribute
| Merkmal | Description | Erforderlich | Standard |
|---|---|---|---|
queue-name |
Gibt den Namen der Servicebuswarteschlange an, an die die Nachricht gesendet werden soll. Richtlinienausdrücke und benannte Werte sind zulässig. Entweder queue-name oder topic-name muss angegeben werden. |
Nein | N/A |
topic-name |
Gibt den Namen des Servicebusthemas an, an das die Nachricht gesendet werden soll. Richtlinienausdrücke und benannte Werte sind zulässig. Entweder queue-name oder topic-name muss angegeben werden. |
Nein | N/A |
namespace |
Gibt den vollqualifizierten Domänennamen des Dienstbusnamespaces an. Richtlinienausdrücke und benannte Werte sind zulässig. | Nein | N/A |
client-id |
Gibt die Client-ID der vom Benutzer zugewiesenen verwalteten Identität an, um sich mit dem Servicebus zu authentifizieren. Der Identität muss die Azure Service Bus Data Sender-Rolle zugewiesen werden. Richtlinienausdrücke und benannte Werte sind zulässig. Wenn Sie dieses Attribut nicht angeben, wird die systemzugewiesene Identität verwendet. | Nein | N/A |
message-id |
Nachrichtenbezeichner. Muss eine gültige GUID sein. Richtlinienausdrücke sind zulässig. Wenn es weggelassen wird, generiert das API-Management einen GUID. | Nein | Generierte GUID |
session-id |
Service Bus Session-Identifikator, der zur Gruppierung verwandter Nachrichten verwendet wird. Muss eine gültige GUID sein. Richtlinienausdrücke sind zulässig. | Nein | N/A |
time-to-live |
Wie lange die Nachricht zur Verarbeitung verfügbar bleibt, bevor sie abläuft. Verwenden Sie zum Beispiel 00:10:00einen TimeSpan-Wert . |
Nein | N/A |
response-variable-name |
Name einer Kontextvariable, die Informationen über die Send-Operation des Service Bus empfängt. | Nein | N/A |
ignore-error |
Ob ein Service Bus-Sendfehler die Fortsetzung der Richtlinienausführung ermöglichen sollte.
true = fortfahren; false = Normale Fehlerbehandlung aufrufen. |
Nein | false |
Hinweis
Wenn Sie spezifizierenresponse-variable-name, speichert API Management Informationen über die Service Bus send-Operation in dieser Kontextvariable. Bei Erfolg enthält MessageIder , SessionId, und TimeToLive. Bei einem ignorierten Send-Fehler enthält Error.Reason es und Error.Message.
Elemente
| Element | Description | Erforderlich |
|---|---|---|
payload |
Gibt die Nachrichtennutzlast an, die an den Servicebus gesendet werden soll. Richtlinienausdrücke und benannte Werte sind zulässig. | Yes |
message-properties |
Eine Auflistung von message-property Unterelementen, die Metadaten angeben, die mit der Nachrichtennutzlast übergeben werden sollen. Jedes message-property besteht aus einem Namens-Wert-Paar. Richtlinienausdrücke und benannte Werte sind zulässig. |
Nein |
Usage
- Richtlinienabschnitte: eingehend, ausgehend, on-error
- Richtlinienbereiche: global, product, API, operation
- Gateways: klassisch
Verwendungshinweise
- Sie müssen die Azure Service Bus-Warteschlange oder das Thema, die eine Nachricht empfängt, vorab erstellen.
- Sie können diese Richtlinie mehrmals pro Richtliniendefinition verwenden.
- Wenn Sie weglassen
message-id, generiert API-Management ein GUID. - Konfigurierte und
session-idWertemessage-idmüssen gültige GUIDs sein. - Verwenden
session-idSie, wenn die Service Bus-Entität Sitzungen benötigt. -
time-to-liveverwendet einenTimeSpanWert wie00:10:00. -
ignore-errorgilt für Sendefehler. Eine ungültige Nachrichtenkonfiguration, wie etwa ein ungültiges GUID oder TTL, führt weiterhin zu Richtlinienfehlern.
Examples
Senden einer Nachricht an eine Servicebuswarteschlange
In diesem Beispiel wird eine Nachricht, die aus dem Anforderungskörper besteht, an die Bestellwarteschlange gesendet. Die Anfrage-ID wird zur Nachrichten-ID, die Nachricht verfällt nach 10 Minuten, und die Sendeinformationen werden in serviceBusResultgespeichert. Ein Sendefehler ruft die Fehlerbehandlung des API-Managements auf. Die API-Verwaltungsinstanz verwendet eine vom Benutzer zugewiesene Identität für den Zugriff. Die Anforderung wird dann an den Back-End-Dienst weitergeleitet.
<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>
Senden einer Nachricht an ein Servicebusthema
In diesem Beispiel senden Sie eine Nachricht, die den Anforderungskörper enthält, an ein Servicebus-Thema. Die API-Verwaltungsinstanz verwendet eine vom System zugewiesene Identität für den Zugriff. Dann leitest du die Anfrage an den Backend-Service weiter.
<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>
Senden einer Nachricht und Metadaten
In diesem Beispiel senden Sie eine Nachricht, die den Anforderungskörper enthält, an ein Servicebus-Thema und setzen eine Nachrichteneigenschaft, die Metadaten mit der Nutzlast überträgt. Die API-Verwaltungsinstanz verwendet eine vom System zugewiesene Identität für den Zugriff. Dann leitest du die Anfrage an den Backend-Service weiter.
<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>
Nachricht senden und sofort zurückgeben
In diesem Beispiel senden Sie eine Nachricht, die den Anforderungskörper enthält, an ein Servicebus-Thema. Die API-Verwaltungsinstanz verwendet eine vom System zugewiesene Identität für den Zugriff. Dann geben Sie dem Anrufer sofort einen 201 Antwortstatuscode zurück.
<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>
Verwandte Richtlinien
Verwandte Inhalte
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
- Tutorial: Transformieren und Schützen Ihrer API
- Unter Richtlinienreferenz finden Sie eine komplette Liste der Richtlinienanweisungen und der zugehörigen Einstellungen.
- Richtlinienausdrücke
- Festlegen oder Bearbeiten von Richtlinien
- Richtlinienkonfigurationen wiederverwenden
- Repository für Richtliniencodeausschnitte
- Policy-Beispiel-Repository
- Azure API Management-Richtlinientoolkit
- Anfordern von Copilot-Unterstützung zum Erstellen, Erläutern und Problembehandlung von Richtlinien