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
- Richtlinienabschnitte: inbound, outbound, on-error
- Richtlinienbereiche: global, product, API, operation
- Gateways: self-hosted
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>
Verwandte Richtlinien
Zugehöriger Inhalt
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
- Tutorial: Transformieren und Schützen Ihrer API
- Unter Richtlinien für die API-Verwaltung finden Sie eine komplette Liste der Richtlinienanweisungen und der zugehörigen Einstellungen.
- Richtlinienausdrücke
- Festlegen oder Bearbeiten von Richtlinien
- Wiederverwenden von Richtlinienkonfigurationen
- Repository für Richtliniencodeausschnitte
- Azure API Management-Richtlinientoolkit
- Erstellen von Richtlinien mit Microsoft Copilot in Azure