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. | Sì | 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
- Sezioni del criterio: inbound
- Ambiti del criterio: globale, prodotto, API, operazione
- Gateway: self-hosted
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>
Criteri correlati
Contenuto correlato
Per ulteriori informazioni sull'utilizzo dei criteri, vedere:
- Esercitazione: trasformare e proteggere l'API
- Informazioni di riferimento sui criteri per un elenco completo delle istruzioni dei criteri e delle relative impostazioni
- Espressioni di criteri
- Impostare o modificare criteri
- Riutilizzare le configurazioni dei criteri
- Repository dei frammenti di criteri
- Creare criteri usando Microsoft Copilot in Azure