Freigeben über


Nachricht an Pub/Sub-Thema senden

GILT FÜR: Entwickler | Premium

Die publish-to-dapr-Richtlinie weist das API Management-Gateway an, eine Nachricht an ein Veröffentlichungs-/Abonnementthema von Dapr zu senden. Die Richtlinie erreicht dies durch eine HTTP POST-Anforderung an http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}, bei der Vorlagenparameter ersetzt werden und in der Richtlinienanweisung angegebener Inhalt hinzugefügt wird.

Die Richtlinie geht davon aus, dass die Dapr-Runtime in einem Sidecar-Container in demselben Pod wie das Gateway ausgeführt wird. Die Dapr-Runtime implementiert die Pub/Sub-Semantik. Erfahren Sie mehr über die Dapr-Integration in 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.

Richtlinienanweisung

<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <!-- message content -->
</publish-to-dapr>

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
pubsub-name Der Name der PubSub-Zielkomponente. Wird dem Parameter pubsubname in Dapr zugeordnet. Falls nicht vorhanden, muss der Attributwert topic die Form pubsub-name/topic-name haben. Richtlinienausdrücke sind zulässig. Nein Keine
topic Der Name des Themas. Wird dem Parameter topic in Dapr zugeordnet. Richtlinienausdrücke sind zulässig. Ja
ignore-error Wenn dieses Attribut auf true festgelegt ist, wird die Richtlinie angewiesen, nicht den Abschnitt on-error auszulösen, wenn ein Fehler von der Dapr-Runtime empfangen wird Richtlinienausdrücke sind nicht zulässig. Nein false
response-variable-name Name des Eintrags in der Sammlung Variables, der zum Speichern der Antwort von der Dapr-Runtime verwendet werden soll. Richtlinienausdrücke sind nicht zulässig. Nein Keine
timeout Zeit (in Sekunden), wie lange auf die Antwort der Dapr-Runtime gewartet werden soll. Der Wert kann im Bereich von 1 bis 240 Sekunden liegen. Richtlinienausdrücke sind zulässig. Nein 5
Vorlage Vorlagen-Engine, das für das Transformieren des Nachrichteninhalts verwendet werden soll. „Liquid“ ist der einzige unterstützte Wert. Nein Keine
content-type Art des Nachrichteninhalts. „application/json“ ist der einzige unterstützte Wert. Nein Keine

Verwendung

Hinweise zur Verwendung

Die Dapr-Unterstützung muss im selbstgehosteten Gateway aktiviert sein.

Beispiel

Das folgende Beispiel zeigt, wie der Text der aktuellen Anforderung an das Thema „new“ der Pub/Sub-Komponente „orders“ gesendet wird. Die von der Dapr-Runtime empfangene Antwort wird im Eintrag „dapr-response“ der Sammlung „Variables“ im Objekt context gespeichert.

Wenn die Dapr-Runtime beispielsweise das Zielthema nicht finden kann und mit einem Fehler antwortet, wird der Abschnitt „on-error“ ausgelöst. Die von der Dapr-Runtime empfangene Antwort wird wörtlich an die aufrufende Funktion zurückgegeben. Andernfalls wird die Standardantwort 200 OK zurückgegeben.

Der Abschnitt „backend“ ist leer, und die Anforderung wird nicht an das Back-End weitergeleitet.

<policies>
     <inbound>
        <base />
        <publish-to-dapr
           pubsub-name="orders"
               topic="new"
               response-variable-name="dapr-response">
            @(context.Request.Body.As<string>())
        </publish-to-dapr>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="pubsub-response" />
    </on-error>
</policies>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: