Inviare il messaggio all'argomento di pubblicazione e sottoscrizione

SI APPLICA A: Sviluppatore | Premium

Il criterio publish-to-dapr indica al gateway di API Management di inviare un messaggio a un argomento Pubblicazione/Sottoscrizione Dapr. Il criterio esegue questa operazione effettuando una richiesta HTTP POST a http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}} sostituendo parametri 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 implementa la semantica Pub/Sub. Altre informazioni sull'integrazione di Dapr con API Management.

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

<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <!-- message content -->
</publish-to-dapr>

Attributi

Attributo Descrizione Richiesto Valore predefinito
pubsub-name Nome del componente PubSub di destinazione. Esegue il mapping al parametro pubsubname in Dapr. Se non è presente, il valore dell'attributo topic deve essere sotto forma di pubsub-name/topic-name. Le espressioni di criteri sono consentite. No None
argomento Nome dell'argomento. Esegue il mapping al parametro argomento in Dapr. Le espressioni di criteri sono consentite. N/D
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

Utilizzo

Note sull'utilizzo

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

Esempio

Nell'esempio seguente viene illustrato l'invio del corpo della richiesta corrente all'argomento "new" del componente Pub/Sub "orders". La risposta ricevuta dal runtime Dapr viene archiviata nella voce "dapr-response" della raccolta Variables nell'oggetto contesto.

Se il runtime Dapr non riesce a individuare l'argomento di destinazione, ad esempio e risponde con un errore, viene attivata la sezione "on-error". La risposta ricevuta dal runtime Dapr viene restituita al chiamante verbatim. 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 />
        <publish-to-dapr
           pubsub-name="orders"
               topic="new"
               response-variable-name="dapr-response">
            @(context.Request.Body.As<string>())
        </publish-to-dapr>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="pubsub-response" />
    </on-error>
</policies>

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: