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 true op, 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
- Beleidssecties: inkomend
- Beleidsbereiken: globaal, product, API, bewerking
- Gateways: zelf-hostend
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>
Gerelateerd beleid
Gerelateerde inhoud
Zie voor meer informatie over het werken met beleid:
- Zelfstudie: Uw API transformeren en beveiligen
- Beleidsreferentie voor een volledige lijst met beleidsinstructies en hun instellingen
- Beleidsexpressies
- Beleid instellen of bewerken
- Beleidsconfiguraties opnieuw gebruiken
- Beleidsfragmentenopslagplaats
- Beleid ontwerpen met Behulp van Microsoft Copilot in Azure