Condividi tramite


Attivare l'associazione di output

SI APPLICA A: Sviluppatore | Premium

Il criterio invoke-dapr-binding indica al gateway di Gestione API di attivare un'associazione Dapr in uscita. Il criterio esegue questa operazione effettuando una richiesta HTTP POST a http://localhost:3500/v1.0/bindings/{{bind-name}}, sostituendo il parametro del modello e aggiungendo il contenuto specificato nell'istruzione del criterio.

Il criterio presuppone che il runtime Dapr sia in esecuzione in un contenitore collaterale nello stesso pod del gateway. Il runtime Dapr è responsabile della chiamata della risorsa esterna rappresentata dall'associazione. Altre informazioni sull'integrazione di Dapr con Gestione API.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Attributo Descrizione Richiesto Valore predefinito
name Nome dell'associazione di destinazione. Deve corrispondere al nome delle associazioni definite in Dapr. Le espressioni di criteri sono consentite. N/D
operation (operazione) Nome dell'operazione di destinazione (specifico dell'associazione). Esegue il mapping alla proprietà operazione in Dapr. Le espressioni di criteri non sono consentite. No None
ignore-error Se impostato su true indica al criterio di non attivare la sezione "on-error" al momento della ricezione dell'errore dal runtime Dapr. Le espressioni di criteri non sono consentite. No false
response-variable-name Nome della voce della raccolta Variables da usare per l'archiviazione della risposta dal runtime Dapr. Le espressioni di criteri non sono consentite. No None
timeout Tempo (in secondi) di attesa della risposta del runtime Dapr. Può variare da 1 a 240 secondi. Le espressioni di criteri sono consentite. No 5
annidato Motore di creazione modelli da usare per trasformare il contenuto del messaggio. "Liquid" è l'unico valore supportato. No None
content-type Tipo di contenuto del messaggio. "application/json" è l'unico valore supportato. No None

Elementi

Elemento Descrizione Richiesto
metadata Metadati specifici dell'associazione sotto forma di coppie chiave/valore. Esegue il mapping alla proprietà metadati in Dapr. No
data Contenuto del messaggio. Esegue il mapping alla proprietà dati in Dapr. Le espressioni di criteri sono consentite. No

Utilizzo

Note sull'utilizzo

Il supporto Dapr deve essere abilitato nel gateway self-hosted.

Esempio

L'esempio seguente illustra l'attivazione dell'associazione in uscita denominata "external-systems" con l'operazione denominata "create", dei metadati costituiti da due elementi chiave/valore denominati "source" e "client-ip" e del corpo proveniente dalla richiesta originale. La risposta ricevuta dal runtime Dapr viene acquisita nella voce "bind-response" della raccolta Variables nell'oggetto contesto.

Se il runtime Dapr ha esito negativo per qualche motivo e risponde con un errore, la sezione "on-error" viene attivata e la risposta ricevuta dal runtime Dapr viene restituita al verbatim del chiamante. In caso contrario, viene restituita la risposta predefinita 200 OK.

La sezione "back-end" è vuota e la richiesta non viene inoltrata al 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>

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: