Liaison de sortie du déclencheur

S’APPLIQUE À : Développeur | Premium

La stratégie invoke-dapr-binding indique à la passerelle de Gestion des API de déclencher une liaison Dapr sortante. La stratégie accomplit cela en adressant une requête HTTP POST à http://localhost:3500/v1.0/bindings/{{bind-name}}, en remplaçant le paramètre 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 est chargé d’appeler la ressource externe représentée par la liaison. 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

<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <metadata>
        <item key="item-name"><!-- item-value --></item>
    </metadata>
    <data>
        <!-- message content -->
    </data>
</invoke-dapr-binding>

Attributs

Attribut Description Obligatoire Default
name Nom de la liaison cible. Doit correspondre au nom des liaisons définies dans Dapr. Les expressions de stratégie sont autorisées. Oui N/A
operation Nom de l’opération cible (spécifique de la liaison). Correspond à la propriété operation dans Dapr. Les expressions de stratégie ne sont pas autorisées. Non None
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

Éléments

Élément Description Obligatoire
metadata Liaison de métadonnées spécifiques sous la forme de paires clé/valeur. Correspond à la propriété metadata dans Dapr. Non
Données Contenu du message. Correspond à la propriété data dans Dapr. Les expressions de stratégie sont autorisées. Non

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 illustre le déclenchement d’une liaison sortante nommée « external-systems » avec le nom d’opération « create », les métadonnées étant composées de deux éléments clé/valeur nommés « source » et « client-ip », et le corps provenant de la demande d’origine. La réponse reçue du runtime Dapr est capturée dans l’entrée « bind-response » de la collection Variables dans l’objet context.

Si le runtime Dapr échoue pour une raison quelconque et répond avec une erreur, la section « on-error » est déclenchée et 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 />
        <invoke-dapr-binding
                      name="external-system"
                      operation="create"
                      response-variable-name="bind-response">
            <metadata>
                <item key="source">api-management</item>
                <item key="client-ip">@(context.Request.IpAddress )</item>
            </metadata>
            <data>
                @(context.Request.Body.As<string>() )
            </data>
        </invoke-dapr-binding>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="bind-response" />
    </on-error>
</policies>

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