Wyzwalanie powiązania wyjściowego

DOTYCZY: Developer | Premium

Zasady invoke-dapr-binding instruują bramę usługi API Management, aby wyzwoliła powiązanie języka Dapr dla ruchu wychodzącego. Te zasady są realizowane przez utworzenie żądania HTTP POST w celu http://localhost:3500/v1.0/bindings/{{bind-name}}, zastąpienia parametru szablonu i dodania zawartości określonej w instrukcji zasad.

Zasady zakładają, że środowisko uruchomieniowe języka Dapr działa w kontenerze przyczepki w tym samym zasobniku co brama. Środowisko uruchomieniowe języka Dapr jest odpowiedzialne za wywoływanie zasobu zewnętrznego reprezentowanego przez powiązanie. Dowiedz się więcej o integracji języka Dapr z usługą API Management.

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Instrukcja zasad

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

Atrybuty

Atrybut opis Wymagani Wartość domyślna
name Nazwa powiązania docelowego. Musi być zgodna z nazwą powiązań zdefiniowanych w języku Dapr. Wyrażenia zasad są dozwolone. Tak Nie dotyczy
rozdzielnicy Nazwa operacji docelowej (powiązanie specyficzne). Mapy do właściwości operation w języku Dapr. Wyrażenia zasad nie są dozwolone. Nie. Brak
ignoruj błąd Jeśli ustawiono polecenie true , aby zasady nie wyzwalały sekcji "on-error" po otrzymaniu błędu ze środowiska uruchomieniowego języka Dapr. Wyrażenia zasad nie są dozwolone. Nie. false
nazwa-zmiennej odpowiedzi Nazwa wpisu kolekcji Zmiennych do użycia do przechowywania odpowiedzi ze środowiska uruchomieniowego języka Dapr. Wyrażenia zasad nie są dozwolone. Nie. Brak
timeout Czas (w sekundach) oczekiwania na odpowiedź środowiska uruchomieniowego dapr. Może wahać się od 1 do 240 sekund. Wyrażenia zasad są dozwolone. Nie. 5
sieci Web Aparat tworzenia szablonów używany do przekształcania zawartości wiadomości. "Liquid" jest jedyną obsługiwaną wartością. Nie. Brak
typ zawartości Typ zawartości wiadomości. Wartość "application/json" jest jedyną obsługiwaną wartością. Nie. Brak

Elementy

Element opis Wymagania
metadane Powiązanie określonych metadanych w postaci par klucz/wartość. Mapy do właściwości metadata w języku Dapr. Nie.
dane Zawartość wiadomości. Mapy do właściwości danych w języku Dapr. Wyrażenia zasad są dozwolone. Nie.

Użycie

  • Sekcje zasad: ruch przychodzący, ruch wychodzący, on-error
  • Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
  • Bramy: self-hosted

Uwagi dotyczące użycia

Obsługa języka Dapr musi być włączona w bramie hostowanej samodzielnie.

Przykład

W poniższym przykładzie pokazano wyzwalanie powiązania wychodzącego o nazwie "external-systems" z operacją o nazwie "create", metadanymi składającymi się z dwóch elementów klucza/wartości o nazwie "source" i "client-ip" oraz treści pochodzącej z oryginalnego żądania. Odpowiedź odebrana ze środowiska uruchomieniowego języka Dapr jest przechwytywana we wpisie "bind-response" kolekcji Zmienne w obiekcie kontekstu .

Jeśli z jakiegoś powodu środowisko uruchomieniowe języka Dapr zakończy się niepowodzeniem i odpowie z powodu błędu, zostanie wyzwolona sekcja "on-error", a odpowiedź odebrana ze środowiska uruchomieniowego języka Dapr zostanie zwrócona do czasownika wywołującego. W przeciwnym razie zostanie zwrócona odpowiedź domyślna 200 OK .

Sekcja "zaplecze" jest pusta i żądanie nie jest przekazywane do zaplecza.

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

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: