Utdatabindning för utlösare

GÄLLER FÖR: Utvecklare | Premium

Principen invoke-dapr-binding instruerar API Management-gatewayen att utlösa en utgående Dapr-bindning. Principen åstadkommer detta genom att göra en HTTP POST-begäran om att http://localhost:3500/v1.0/bindings/{{bind-name}}, ersätta mallparametern och lägga till innehåll som anges i principbeskrivningen.

Principen förutsätter att Dapr-körningen körs i en sidovagnscontainer i samma podd som gatewayen. Dapr-körningen ansvarar för att anropa den externa resursen som representeras av bindningen. Läs mer om Dapr-integrering med API Management.

Kommentar

Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.

Principuttryck

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

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
name Målbindningsnamn. Måste matcha namnet på bindningarna som definierats i Dapr. Principuttryck tillåts. Ja Ej tillämpligt
operation Målåtgärdsnamn (bindningsspecifikt). Kartor till åtgärdsegenskapen i Dapr. Principuttryck tillåts inte. Nej Ingen
ignore-error Om inställningen är inställd true på instrueras principen att inte utlösa avsnittet "on-error" när du får ett fel från Dapr-körningen. Principuttryck tillåts inte. Nej false
response-variable-name Namnet på den variabelsamlingspost som ska användas för att lagra svar från Dapr-körning. Principuttryck tillåts inte. Nej Ingen
timeout Tid (i sekunder) att vänta tills Dapr-körningen svarar. Kan variera från 1 till 240 sekunder. Principuttryck tillåts. Nej 5
mall Mallmotor som ska användas för att transformera meddelandeinnehållet. "Liquid" är det enda värde som stöds. Nej Ingen
innehållstyp Typ av meddelandeinnehåll. "application/json" är det enda värde som stöds. Nej Ingen

Element

Element Description Obligatoriskt
metadata Binda specifika metadata i form av nyckel/värde-par. Kartor till metadataegenskapen i Dapr. Nej
data Innehållet i meddelandet. Kartor till dataegenskapen i Dapr. Principuttryck tillåts. Nej

Användning

Användningsanteckningar

Dapr-stöd måste vara aktiverat i den lokalt installerade gatewayen.

Exempel

I följande exempel visas utlösande av utgående bindning med namnet "external-systems" med åtgärden "create", metadata som består av två nyckel-/värdeobjekt med namnet "source" och "client-ip" och brödtexten som kommer från den ursprungliga begäran. Svaret som tas emot från Dapr-körningen samlas in i posten "bind-response" i samlingen Variabler i kontextobjektet .

Om Dapr-körningen misslyckas av någon anledning och svarar med ett fel utlöses avsnittet "on-error" och svaret som tas emot från Dapr-körningen returneras till anroparen ordagrant. Annars returneras standardsvaret 200 OK .

Avsnittet "serverdel" är tomt och begäran vidarebefordras inte till serverdelen.

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

Mer information om hur du arbetar med principer finns i: