Teilen über


Servicebusnachricht senden

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. Die API-Anfrage kann optional an den Backend-Service weitergeleitet werden.

Hinweis

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-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 nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Nein N/A

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

Verwendungshinweise

  • Sie müssen die Azure Service Bus-Warteschlange oder das Thema, die eine Nachricht empfängt, vorab erstellen.
  • Diese Richtlinie kann pro Richtliniendefinition mehrmals verwendet werden.

Examples

Senden einer Nachricht an eine Servicebuswarteschlange

In diesem Beispiel wird eine Nachricht, die aus dem Anforderungstext besteht, an eine Servicebuswarteschlange gesendet. 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" client-id="00001111-aaaa-2222-bbbb-3333cccc4444" 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 an ein Servicebusthema

In diesem Beispiel wird eine Nachricht, die aus dem Anforderungstext besteht, an ein Servicebusthema gesendet. Die API-Verwaltungsinstanz verwendet eine vom System zugewiesene Identität für den Zugriff. Die Anforderung wird dann an den Back-End-Dienst weitergeleitet.

<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 wird eine Nachricht, die aus dem Anforderungstext besteht, an ein Servicebusthema gesendet, und eine Nachrichteneigenschaft wird so festgelegt, dass Metadaten mit der Nutzlast gesendet werden. Die API-Verwaltungsinstanz verwendet eine vom System zugewiesene Identität für den Zugriff. Die Anforderung wird dann an den Back-End-Dienst weitergeleitet.

<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 wird eine Nachricht, die aus dem Anforderungstext besteht, an ein Servicebusthema gesendet. Die API-Verwaltungsinstanz verwendet eine vom System zugewiesene Identität für den Zugriff. Ein 201 Antwortstatuscode wird dann sofort an den Aufrufer zurückgegeben.

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

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: