Ausgabebindung auslösen

GILT FÜR: Entwickler | Premium

Die invoke-dapr-binding-Richtlinie weist das API Management-Gateway an, eine ausgehende Dapr-Bindung auszulösen. Die Richtlinie erreicht dies durch eine HTTP POST-Anforderung an http://localhost:3500/v1.0/bindings/{{bind-name}},, bei der der Vorlagenparameter ersetzt und in der Richtlinienanweisung angegebener Inhalt hinzugefügt wird.

Die Richtlinie geht davon aus, dass die Dapr-Runtime in einem Sidecar-Container in demselben Pod wie das Gateway ausgeführt wird. Die Dapr-Runtime ist dafür verantwortlich, die externe Ressource aufzurufen, die durch die Bindung dargestellt wird. Erfahren Sie mehr über die Dapr-Integration in API Management.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

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

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
name Name der Zielbindung. Muss dem Namen der Bindungen entsprechen, die in Dapr definiert sind. Richtlinienausdrücke sind zulässig. Ja N/V
operation Name des Zielvorgangs (bindungsspezifisch). Der Eigenschaft operation in Dapr zugeordnet. Richtlinienausdrücke sind nicht zulässig. Nein Keine
ignore-error Bei Festlegung auf true wird die Richtlinie angewiesen, nicht den Abschnitt „on-error“ auszulösen, wenn ein Fehler von der Dapr-Runtime empfangen wird. Richtlinienausdrücke sind nicht zulässig. Nein false
response-variable-name Name des Eintrags in der Sammlung Variables, der zum Speichern der Antwort von der Dapr-Runtime verwendet werden soll. Richtlinienausdrücke sind nicht zulässig. Nein Keine
timeout Zeit (in Sekunden), wie lange auf die Antwort der Dapr-Runtime gewartet werden soll. Der Wert kann im Bereich von 1 bis 240 Sekunden liegen. Richtlinienausdrücke sind zulässig. Nein 5
Vorlage Vorlagen-Engine, das für das Transformieren des Nachrichteninhalts verwendet werden soll. „Liquid“ ist der einzige unterstützte Wert. Nein Keine
content-type Art des Nachrichteninhalts. „application/json“ ist der einzige unterstützte Wert. Nein Keine

Elemente

Element BESCHREIBUNG Erforderlich
metadata Bindung spezifischer Metadaten in Form von Schlüssel-Wert-Paaren. Der Eigenschaft metadata in Dapr zugeordnet. Nein
Daten Inhalt der Nachricht. Der Eigenschaft data in Dapr zugeordnet. Richtlinienausdrücke sind zulässig. Nein

Verwendung

Hinweise zur Verwendung

Die Dapr-Unterstützung muss im selbstgehosteten Gateway aktiviert sein.

Beispiel

Das folgende Beispiel zeigt das Auslösen einer ausgehenden Bindung namens „external-systems“ mit einem Vorgang namens „create“, aus zwei Schlüssel-Wert-Elementen namens „source“ und „client-ip“ bestehenden Metadaten sowie dem aus der ursprünglichen Anforderung stammenden Text. Die von der Dapr-Runtime empfangene Antwort wird im Eintrag „bind-response“ der Sammlung „Variables“ im Objekt context erfasst.

Wenn die Dapr-Runtime aus einem beliebigen Grund fehlschlägt und mit einem Fehler antwortet, wird der Abschnitt „on-error“ ausgelöst, und die von der Dapr-Runtime erhaltene Antwort wird wörtlich an die aufrufende Funktion zurückgegeben. Andernfalls wird die Standardantwort 200 OK zurückgegeben.

Der Abschnitt „backend“ ist leer, und die Anforderung wird nicht an das Back-End weitergeleitet.

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

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: