Envoyer un message à une rubrique Publier/S’abonner

S'APPLIQUE À : Développeur | Premium

La stratégie publish-to-dapr indique à la passerelle de Gestion des API d’envoyer un message à une rubrique Publier/S’abonner de Dapr. La stratégie accomplit cela en adressant une requête HTTP POST à http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}} en remplaçant les paramètres du modèle et en ajoutant le contenu spécifié dans la déclaration de stratégie.

La stratégie part du principe que le runtime Dapr s’exécute dans un conteneur sidecar se trouvant dans le même pod que la passerelle. Le runtime Dapr implémente la sémantique Publier/S’abonner. En savoir plus sur l’intégration de Dapr à Gestion des API.

Notes

Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.

Instruction de la stratégie

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

Attributs

Attribut Description Obligatoire Default
pubsub-name Nom du composant PubSub cible. Correspond au paramètre pubsubname dans Dapr. À défaut, la valeur de l’attribut topic doit se présenter sous la forme pubsub-name/topic-name. Les expressions de stratégie sont autorisées. Non None
topic Nom de la rubrique. Correspond au paramètre topic dans Dapr. Les expressions de stratégie sont autorisées. Oui N/A
ignore-error Si cette valeur est définie sur true, elle indique à la stratégie de ne pas déclencher la section « on-error » lors de la réception d’une erreur du runtime Dapr Les expressions de stratégie ne sont pas autorisées. Non false
response-variable-name Nom de l’entrée de collection Variables à utiliser pour stocker la réponse du runtime Dapr. Les expressions de stratégie ne sont pas autorisées. Non None
délai d'expiration Durée (en secondes) d’attente de la réponse du runtime Dapr. Peut être comprise entre 1 et 240 secondes. Les expressions de stratégie sont autorisées. Non 5
template Moteur de création de modèles à utiliser pour transformer le contenu du message. « Liquid » est la seule valeur prise en charge. Non None
content-type Type de contenu du message. « application/json » est la seule valeur prise en charge. Non None

Usage

Notes d’utilisation

La prise en charge de Dapr doit être activée dans la passerelle auto-hébergée.

Exemple

L’exemple suivant montre comment envoyer le corps de la demande actuelle à la rubrique « new » du composant Publier/S’abonner d’« orders ». La réponse reçue du runtime Dapr est stockée dans l’entrée « dapr-response » de la collection Variables dans l’objet contexte.

Si le runtime Dapr ne peut pas localiser la rubrique cible, par exemple, et répond avec une erreur, la section « on-error » est déclenchée. La réponse reçue du runtime Dapr est renvoyée au verbatim de l’appelant. Dans le cas contraire, la réponse 200 OK par défaut est retournée.

La section « backend » est vide et la demande n’est pas transférée au serveur principal.

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

Pour plus d’informations sur l’utilisation des stratégies, consultez :