Uitvoerbinding activeren

VAN TOEPASSING OP: Ontwikkelaar | Premium

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). Kaarten naar 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. Kaarten naar de eigenschap metagegevens in Dapr. Nee
gegevens Inhoud van het bericht. Kaarten naar de gegevenseigenschap in Dapr. Beleidsexpressies zijn toegestaan. Nee

Gebruik

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>

Zie voor meer informatie over het werken met beleid: