Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À : Développeur | De base | Standard | Prime
La send-service-bus-message stratégie envoie un message à une file d’attente ou une rubrique Azure Service Bus. Vous pouvez éventuellement transférer la requête API vers le service backend.
Note
- Pour connaître les conditions préalables à l’envoi de messages à Azure Service Bus, consultez Comment envoyer des messages à Azure Service Bus à partir de Gestion des API Azure.
Note
Définissez les éléments de stratégie et les éléments enfants dans l’ordre fourni dans la déclaration de politique. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.
Déclaration de politique
<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
| Caractéristique | Descriptif | Obligatoire | Par défaut |
|---|---|---|---|
queue-name |
Spécifie le nom de la file d’attente Service Bus à laquelle envoyer le message. Les expressions de stratégie et les valeurs nommées sont autorisées.
queue-name Soit topic-name doit être spécifié. |
Non | N/A |
topic-name |
Spécifie le nom de la rubrique Service Bus à laquelle envoyer le message. Les expressions de stratégie et les valeurs nommées sont autorisées.
queue-name Soit topic-name doit être spécifié. |
Non | N/A |
namespace |
Spécifie le nom de domaine complet de l’espace de noms Service Bus. Les expressions de stratégie et les valeurs nommées sont autorisées. | Non | N/A |
client-id |
Spécifie l’ID client de l’identité managée affectée par l’utilisateur pour s’authentifier auprès de Service Bus. L’identité doit être affectée au rôle Expéditeur de données Azure Service Bus. Les expressions de stratégie et les valeurs nommées sont autorisées. Si vous ne spécifiez pas cet attribut, l’identité attribuée par le système est utilisée. | Non | N/A |
message-id |
Identificateur de message. Doit être un GUID valide. Les expressions de stratégie sont autorisées. Si cela est omis, API Management génère un GUID. | Non | GUID généré |
session-id |
Identifiant de session Service Bus utilisé pour regrouper les messages associés. Doit être un GUID valide. Les expressions de stratégie sont autorisées. | Non | N/A |
time-to-live |
Combien de temps le message reste disponible pour le traitement avant son expiration. Utilisez une valeur TimeSpan, par 00:10:00exemple . |
Non | N/A |
response-variable-name |
Nom d’une variable de contexte qui reçoit des informations sur l’opération d’envoi du Service Bus. | Non | N/A |
ignore-error |
Que ce soit un échec d’envoi Service Bus devrait permettre la poursuite de l’exécution des politiques.
true = continuer ; false = invoquer la gestion normale des erreurs. |
Non | false |
Note
Lorsque vous spécifiez response-variable-name, API Management stocke des informations sur l’opération d’envoi du Service Bus dans cette variable de contexte. En cas de succès, elle contient MessageId, SessionId, et TimeToLive. Sur un échec d’envoi ignoré, il contient Error.Reason et Error.Message.
Elements
| Élément | Descriptif | Obligatoire |
|---|---|---|
payload |
Spécifie la charge utile du message à envoyer au service bus. Les expressions de stratégie et les valeurs nommées sont autorisées. | Oui |
message-properties |
Collection de message-property sous-éléments qui spécifient les métadonnées à transmettre avec la charge utile du message. Chacun message-property se compose d’une paire nom-valeur. Les expressions de stratégie et les valeurs nommées sont autorisées. |
Non |
Usage
- Sections de stratégie : entrant, sortant, en cas d’erreur
- Étendues de la stratégie : global, product, API, operation
- Passerelles : classique
Notes d’utilisation
- Vous devez précréer la file d’attente ou la rubrique Azure Service Bus qui reçoit un message.
- Vous pouvez utiliser cette stratégie plusieurs fois par définition de stratégie.
- Si vous omettez
message-id, API Management génère une interface graphique. - Les valeurs configurées
message-idetsession-iddoivent être des GUID valides. - À utiliser
session-idlorsque l’entité Service Bus nécessite des sessions. -
time-to-liveutilise uneTimeSpanvaleur telle que00:10:00. -
ignore-errorCela s’applique aux échecs d’envoi. Une configuration de message invalide, comme un GUID ou un TTL invalides, provoque toujours une défaillance de la politique.
Examples
Envoyer un message à une file d’attente Service Bus
Dans cet exemple, un message composé du corps de la demande est envoyé à la file d’attente des ordres. L’ID de requête devient l’ID du message, le message expire après 10 minutes, et l’information d’envoi est stockée dans serviceBusResult. Une défaillance d’envoi entraîne la gestion des erreurs de gestion des API. L’instance Gestion des API utilise une identité affectée par l’utilisateur pour l’accès. La requête est ensuite transférée au service principal.
<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>
Envoyer un message à une rubrique Service Bus
Dans cet exemple, vous envoyez un message contenant le corps de la requête vers un sujet de bus de service. L’instance Gestion des API utilise une identité affectée par le système pour l’accès. Ensuite, vous transférez la requête au service 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>
Envoyer un message et des métadonnées
Dans cet exemple, vous envoyez un message contenant le corps de la requête vers un sujet de bus de service et définissez une propriété de message pour envoyer des métadonnées avec la charge utile. L’instance Gestion des API utilise une identité affectée par le système pour l’accès. Ensuite, vous transférez la requête au service 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>
Envoyer un message et retourner immédiatement
Dans cet exemple, vous envoyez un message contenant le corps de la requête vers un sujet de bus de service. L’instance Gestion des API utilise une identité affectée par le système pour l’accès. Ensuite, vous retournez immédiatement un 201 code de statut de réponse à l’appelant.
<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>
Stratégies connexes
Contenu connexe
Pour plus d’informations sur l’utilisation des stratégies, consultez :
- Tutoriel : Transformer et protéger votre API
- Référence de politique pour obtenir la liste complète des déclarations et des paramètres de politique
- Expressions de stratégie
- Définir ou modifier des stratégies
- Réutiliser les configurations de stratégie
- Répertoire de fragments de politiques
- dépôt d’exemples Policy
- Ensemble de stratégies de gestion des API Azure
- Obtenez de l’aide de Copilot pour créer, expliquer et dépanner des politiques