Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A: Sviluppatore | Basic | Standard | Premium
Il send-service-bus-message criterio invia un messaggio a una coda o a un argomento del bus di servizio di Azure. Puoi opzionalmente inoltrare la richiesta API al servizio backend.
Annotazioni
- Per informazioni generali e prerequisiti per l'invio di messaggi al bus di servizio di Azure, vedere Come inviare messaggi al bus di servizio di Azure da Gestione API di Azure.
Annotazioni
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 Gestione API.
Istruzione del criterio
<send-service-bus-message
queue-name="service bus queue"
topic-name="service bus topic"
namespace="FQDN of service bus namespace"
client-id="ID of user-assigned managed identity"
message-id="message ID"
session-id="session ID"
time-to-live="message time to live"
response-variable-name="context variable name"
ignore-error="false">
<message-properties>
<message-property name="property-name">property-value</message-property>
<!-- if there are multiple properties, then add additional message-property elements -->
</message-properties>
<payload>"message content"</payload>
</send-service-bus-message>
Attributes
| Attribute | Description | Obbligatorio | Impostazione predefinita |
|---|---|---|---|
queue-name |
Specifica il nome della coda del bus di servizio a cui inviare il messaggio. Sono consentite espressioni di criteri e valori denominati. È queue-name necessario specificare o topic-name . |
NO | N/A |
topic-name |
Specifica il nome dell'argomento del bus di servizio a cui inviare il messaggio. Sono consentite espressioni di criteri e valori denominati. È queue-name necessario specificare o topic-name . |
NO | N/A |
namespace |
Specifica il nome di dominio completo dello spazio dei nomi del bus di servizio. Sono consentite espressioni di criteri e valori denominati. | NO | N/A |
client-id |
Specifica l'ID client dell'identità gestita assegnata dall'utente per l'autenticazione con il bus di servizio. All'identità deve essere assegnato il ruolo Mittente dati del bus di servizio di Azure. Sono consentite espressioni di criteri e valori denominati. Se non specifichi questo attributo, viene utilizzata l'identità assegnata dal sistema. | NO | N/A |
message-id |
Identificatore del messaggio. Deve essere un GUID valido. Le espressioni di criteri sono consentite. Se omesso, API Management genera una GUID. | NO | GUID generato |
session-id |
Identificatore di sessione bus di servizio utilizzato per raggruppare i messaggi correlati. Deve essere un GUID valido. Le espressioni di criteri sono consentite. | NO | N/A |
time-to-live |
Quanto tempo il messaggio rimane disponibile per l'elaborazione prima di scadere. Usa un valore TimeSpan, ad 00:10:00esempio . |
NO | N/A |
response-variable-name |
Nome di una variabile di contesto che riceve informazioni sull'operazione di invio del bus di servizio. | NO | N/A |
ignore-error |
Se un fallimento di invio di bus di servizio dovrebbe permettere di continuare l'esecuzione delle policy.
true = continua; false = invocare la gestione normale degli errori. |
NO | false |
Annotazioni
Quando specifichi response-variable-name, API Management memorizza informazioni sull'operazione di invio del bus di servizio in quella variabile contestuale. Al successo, contiene MessageId, SessionId, e TimeToLive. In caso di errore di invio ignorato, contiene Error.Reason e Error.Message.
Elements
| Elemento | Description | Obbligatorio |
|---|---|---|
payload |
Specifica il payload del messaggio da inviare al bus di servizio. Sono consentite espressioni di criteri e valori denominati. | Yes |
message-properties |
Raccolta di message-property sottoelementi che specificano i metadati da passare con il payload del messaggio. Ognuno message-property è costituito da una coppia nome-valore. Sono consentite espressioni di criteri e valori denominati. |
NO |
Usage
- Sezioni dei criteri: in ingresso, in uscita, in uscita e in caso di errore
- Ambiti del criterio: globale, prodotto, API, operazione
- Gateway: versione classica
Note sull'utilizzo
- È necessario creare in modo preliminare la coda o l'argomento del bus di servizio di Azure che riceve un messaggio.
- È possibile usare questo criterio più volte per definizione di criteri.
- Se ometti
message-id, API Management genera un GUID. - I valori configurati
message-idesession-iddevono essere GUID validi. - Da usare
session-idquando l'entità bus di servizio richiede sessioni. -
time-to-liveusa unTimeSpanvalore come00:10:00. -
ignore-errorSi applica ai fallimenti di invio. Una configurazione dei messaggi non valida, come un GUID o un TTL non validi, causa comunque il fallimento della policy.
Esempi
Inviare un messaggio a una coda del bus di servizio
In questo esempio, un messaggio costituito dal corpo della richiesta viene inviato alla coda degli ordini. L'ID della richiesta diventa l'ID del messaggio, il messaggio scade dopo 10 minuti e le informazioni di invio vengono memorizzate in serviceBusResult. Un fallimento di invio provoca la gestione degli errori di gestione API. L'istanza di Gestione API usa un'identità assegnata dall'utente per l'accesso. La richiesta viene quindi inoltrata al servizio back-end.
<policies>
<inbound>
<send-service-bus-message
queue-name="orders"
namespace="contoso-messaging.servicebus.windows.net"
message-id="@(context.RequestId.ToString())"
time-to-live="00:10:00"
response-variable-name="serviceBusResult"
ignore-error="false">
<payload>
@(context.Request.Body.As<string>(preserveContent: true))
</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Inviare un messaggio a un argomento del bus di servizio
In questo esempio, invii un messaggio che contiene il corpo della richiesta a un argomento del bus di servizio. L'istanza di Gestione API usa un'identità assegnata dal sistema per l'accesso. Poi, inoltri la richiesta al servizio backend.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Inviare un messaggio e metadati
In questo esempio, invii un messaggio che contiene il corpo della richiesta a un argomento del bus di servizio e imposti una proprietà di messaggio per inviare i metadati con il payload. L'istanza di Gestione API usa un'identità assegnata dal sistema per l'accesso. Poi, inoltri la richiesta al servizio backend.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<message-properties>
<message-property name="Customer">Contoso</message-property>
</message-properties>
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Inviare un messaggio e restituire immediatamente
In questo esempio, invii un messaggio che contiene il corpo della richiesta a un argomento del bus di servizio. L'istanza di Gestione API usa un'identità assegnata dal sistema per l'accesso. Poi, restituisci immediatamente un 201 codice di stato di risposta al chiamante.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
<return-response>
<set-status code="201" reason="Created!" />
</return-response>
</inbound>
</policies>
Criteri correlati
Contenuti correlati
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 politica
- Modificare o impostare criteri
- Riutilizzare le configurazioni delle politiche
- Repository dei frammenti di criteri
- repository di esempi Policy
- Toolkit delle politiche della Gestione API di Azure
- Ottenere assistenza da Copilot per creare, spiegare e risolvere le politiche