Uitvoerbinding activeren
VAN TOEPASSING OP: Ontwikkelaar | Premie
Met invoke-dapr-binding
het beleid wordt de API Management-gateway geïnstrueerd om een uitgaande Dapr-binding te activeren. Het beleid doet dit door een HTTP POST-aanvraag te maken om de sjabloonparameter te vervangen en inhoud toe te http://localhost:3500/v1.0/bindings/{{bind-name}},
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 is verantwoordelijk voor het aanroepen van de externe resource die wordt vertegenwoordigd door de binding. 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
<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<metadata>
<item key="item-name"><!-- item-value --></item>
</metadata>
<data>
<!-- message content -->
</data>
</invoke-dapr-binding>
Kenmerken
Kenmerk | Beschrijving | Vereist | Standaardinstelling |
---|---|---|---|
naam | Naam van doelbinding. Moet overeenkomen met de naam van de bindingen die zijn gedefinieerd in Dapr. Beleidsexpressies zijn toegestaan. | Ja | N.v.t. |
schakelapparatuur optimaliseren | Naam van doelbewerking (bindingsspecifiek). Wordt toegewezen aan de bewerkingseigenschap in Dapr. Beleidsexpressies zijn niet toegestaan. | Nee | Geen |
ignore-error | Als dit is ingesteld op true instructies voor het beleid om de sectie 'on-error' niet te activeren bij het ontvangen van een 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 |
Elementen
Element | Beschrijving | Vereist |
---|---|---|
metagegevens | Binding van specifieke metagegevens in de vorm van sleutel-/waardeparen. Wordt toegewezen aan de eigenschap metagegevens in Dapr. | Nee |
gegevens | Inhoud van het bericht. Wordt toegewezen aan de gegevenseigenschap in Dapr. Beleidsexpressies zijn toegestaan. | Nee |
Gebruik
- Beleidssecties: inkomend, uitgaand, on-error
- 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 uitgaande binding wordt geactiveerd met de naam 'external-systems' met de bewerking 'create', metagegevens die bestaan uit twee sleutel-/waarde-items met de naam 'bron' en 'client-ip', en de hoofdtekst die afkomstig is van de oorspronkelijke aanvraag. Het antwoord dat is ontvangen van de Dapr-runtime, wordt vastgelegd in de vermelding 'bind-response' van de verzameling Variabelen in het contextobject .
Als de Dapr-runtime om een of andere reden mislukt en reageert met een fout, wordt de sectie 'on-error' geactiveerd en wordt het antwoord van de Dapr-runtime 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 />
<invoke-dapr-binding
name="external-system"
operation="create"
response-variable-name="bind-response">
<metadata>
<item key="source">api-management</item>
<item key="client-ip">@(context.Request.IpAddress )</item>
</metadata>
<data>
@(context.Request.Body.As<string>() )
</data>
</invoke-dapr-binding>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="bind-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