Delen via


Bericht verzenden naar pub-/subonderwerp

VAN TOEPASSING OP: Ontwikkelaar | Premie

Het publish-to-dapr beleid geeft API Management-gateway de opdracht om een bericht te verzenden naar een Onderwerp publiceren/abonneren in Dapr. Het beleid doet dit door een HTTP POST-aanvraag in te dienen, sjabloonparameters te vervangen en inhoud toe te http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}voegen die is opgegeven in de beleidsinstructie.

In het beleid wordt ervan uitgegaan dat dapr-runtime wordt uitgevoerd in een sidecar-container in dezelfde pod als de gateway. Dapr-runtime implementeert de semantiek Pub/Sub. Meer informatie over Dapr-integratie met API Management.

Notitie

Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.

Beleidsinstructie

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

Kenmerken

Kenmerk Beschrijving Vereist Standaardinstelling
pubsubnaam De naam van het doelonderdeel PubSub. Wordt toegewezen aan de parameter pubsubname in Dapr. Als deze niet aanwezig is, moet de topic kenmerkwaarde de vorm hebben van pubsub-name/topic-name. Beleidsexpressies zijn toegestaan. Nee Geen
onderwerp De naam van het onderwerp. Wordt toegewezen aan de onderwerpparameter in Dapr. Beleidsexpressies zijn toegestaan. Ja N.v.t.
ignore-error Als dit is ingesteld trueop, geeft u het beleid opdracht om de sectie 'on-error' niet te activeren bij het ontvangen van de fout van dapr-runtime. Beleidsexpressies zijn niet toegestaan. Nee false
response-variable-name De naam van de verzamelingsvermelding Variabelen die moet worden gebruikt voor het opslaan van het antwoord van dapr-runtime. Beleidsexpressies zijn niet toegestaan. Nee Geen
timeout Tijd (in seconden) om te wachten totdat de Dapr-runtime reageert. Kan variƫren van 1 tot 240 seconden. Beleidsexpressies zijn toegestaan. Nee 5
sjabloon Sjabloonengine die moet worden gebruikt voor het transformeren van de inhoud van het bericht. 'Liquid' is de enige ondersteunde waarde. Nee Geen
inhoudstype Type berichtinhoud. 'application/json' is de enige ondersteunde waarde. Nee Geen

Gebruik

Gebruiksnotities

Dapr-ondersteuning moet zijn ingeschakeld in de zelf-hostende gateway.

Opmerking

In het volgende voorbeeld ziet u hoe u de hoofdtekst van de huidige aanvraag verzendt naar het onderwerp 'nieuw' van het onderdeel 'orders' Pub/Sub. Het antwoord dat is ontvangen van de Dapr-runtime, wordt opgeslagen in de vermelding 'dapr-response' van de verzameling Variabelen in het contextobject .

Als de Dapr-runtime bijvoorbeeld het doelonderwerp niet kan vinden en reageert met een fout, wordt de sectie 'on-error' geactiveerd. Het antwoord dat is ontvangen van de Dapr-runtime, wordt geretourneerd naar de exacte bewoordingen van de beller. Anders wordt het standaardantwoord 200 OK geretourneerd.

De sectie Back-end is leeg en de aanvraag wordt niet doorgestuurd naar de back-end.

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

Zie voor meer informatie over het werken met beleid: