Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

AMQP

Le canal amqp consomme des messages depuis un broker AMQP 0-9-1 (RabbitMQ et compatibles). Chaque livraison peut piloter la boucle d’agent, démarrer une exécution SOP, ou les deux, sélectionné par alias par le champ dispatch.

Il s’agit d’une source d’événements SOP. Pour la syntaxe de déclenchement, la correspondance des clés de routage et la partie SOP du câblage, consultez SOP Fan-In: AMQP. Cette page traite de la connexion au broker et du mode de dispatch.

Configuration

La liste complète des champs, dérivée du schéma en direct. Pour un consommateur basique, vous définissez amqp_url, exchange et routing_keys.

amqp_url* 🔑 secret · default

URL du courtier AMQP. Utilisez amqp:// pour une connexion non chiffrée ou amqps:// pour TLS (par ex. amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub).

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.amqp_url.

zerocode

Dans le panneau Configuration, définissez le champ channels.amqp.<alias>.amqp_url.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.amqp_url    # entrée masquée, stockée chiffrée

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__amqp_url=
ca_cert string? · default

Chemin vers le bundle de certificats CA pour les connexions amqps://.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.ca_cert.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.ca_cert.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.ca_cert <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__ca_cert=
client_cert 🔑 secret · default

Chemin vers le certificat client pour l’authentification mutual-TLS du broker (Fedora Messaging nécessite un certificat client).

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.client_cert.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.client_cert.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.client_cert    # entrée masquée, stockée chiffrée

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__client_cert=
client_key 🔑 secret · default

Chemin vers la clé privée du client correspondant à client_cert.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.client_key.

zerocode

Dans le panneau Config, définissez le champ channels.amqp.<alias>.client_key.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.client_key    # entrée masquée, stockée chiffrée

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__client_key=
content_template string · default ""

Modèle pour le contenu du message entrant. Les espaces réservés {field} sont interpolés à partir des clés de premier niveau du corps de livraison JSON. Lorsqu’il est vide, le corps de livraison brut est utilisé tel quel.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.content_template.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.content_template.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.content_template <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__content_template=
dispatch SopDispatch · default "agent_loop"

Où les livraisons consommées sont acheminées : piloter un tour d’agent (agent_loop, par défaut), dispatcher vers le moteur SOP (sop), ou les deux (sop_and_agent_loop). Les modes sop et sop_and_agent_loop font correspondre la livraison aux déclencheurs SOP amqp par clé de routage.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.dispatch.

zerocode

Dans le panneau Config, définissez le champ channels.amqp.<alias>.dispatch.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.dispatch <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__dispatch=
durable_ack bool · default true

Mode d’acquittement. Lorsque true (par défaut), les livraisons ne sont acquittées qu’après transmission durable du message à la boucle de l’agent, garantissant une sémantique « au moins une fois » : un plantage avant la transmission redélivre l’événement. Définissez false pour une sémantique « au plus une fois » (acquittement par le courtier à l’envoi), ce qui entraîne la perte silencieuse des événements en cours de traitement lors d’un plantage et ne convient qu’aux consommateurs sans effets secondaires, conçus pour ignorer les événements en cas de surcharge.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.durable_ack.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.durable_ack.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.durable_ack <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__durable_ack=
exchange* string · default

Exchange sur lequel lier la file d’attente du consommateur (par ex. amq.topic).

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.exchange.

zerocode

Dans le panneau Configuration, définissez le champ channels.amqp.<alias>.exchange.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.exchange <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__exchange=
excluded_tools string[] · default []

Outils exclus de la spécification d’outils de ce canal. Lorsque ce paramètre est défini, ces outils ne sont pas exposés au modèle lors des réponses via ce canal.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.excluded_tools.

zerocode

Dans le panneau Config, définissez le champ channels.amqp.<alias>.excluded_tools.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.excluded_tools <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__excluded_tools=
queue string? · default

Nom de la file d’attente. Laissez non défini pour une file d’attente générée par le serveur, transitoire, supprimée automatiquement et exclusive. Définissez un nom stable (UUID recommandé) uniquement lorsque la livraison durable à travers les reconnexions est requise.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.queue.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.queue.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.queue <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__queue=
routing_keys string[] · default []

Clés de routage à lier. Restreignez-les aux topics d’intérêt ; lier # consomme l’intégralité de l’exchange et n’est presque jamais ce que vous voulez.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.routing_keys.

zerocode

Dans le volet Configuration, définissez le champ channels.amqp.<alias>.routing_keys.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.routing_keys <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__routing_keys=
sender_label string · default "amqp"

Valeur placée dans ChannelMessage.sender pour chaque livraison provenant de cette source (par ex. anitya). Permet à la garde de boucle propre de l’orchestrateur et au routage par canal d’identifier l’origine.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.sender_label.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.sender_label.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.sender_label <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__sender_label=
thread_id_field string · default ""

Chemin en notation pointée dans le corps JSON de la livraison dont la valeur devient le thread_ts du message, permettant de corrélérer les réponses à l’événement d’origine (p. ex. message.project.name). Une valeur vide désactive le fil de discussion.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/amqp et définissez le champ channels.amqp.<alias>.thread_id_field.

zerocode

Dans le volet Config, définissez le champ channels.amqp.<alias>.thread_id_field.

zeroclaw config

zeroclaw config set channels.amqp.<alias>.thread_id_field <value>

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__amqp__<alias>__thread_id_field=

Référence complète des champs : référence de configuration.

Modes de dispatch

Le champ dispatch décide de ce qu’une livraison fait :

  • agent_loop (par défaut) : la livraison est transmise à la boucle d’agent sous forme de message. Cela préserve le comportement d’origine ; les consommateurs existants ne sont pas affectés.
  • sop : la livraison est élevée en un événement SOP (clé de routage dans le topic de l’événement, corps dans le payload) et dispatchée au moteur SOP. Voir SOP Fan-In: AMQP.
  • sop_and_agent_loop : les deux ci-dessus s’exécutent pour chaque livraison.

TLS

Pour un transport TLS, pointez amqp_url vers un point de terminaison amqps:// et fournissez ca_cert. Pour le TLS mutuel, définissez également client_cert et client_key. En l’absence de ces paramètres, la connexion est en clair ; n’exposez pas de consommateur en clair sur un réseau non fiable.

Dépannage

SymptômeCause probableCorriger
Aucun message consomméles exchanges ou les clés de routage ne correspondent pas au publisherVérifiez exchange et routing_keys par rapport à ce que l’éditeur émet
La poignée de main TLS échoueamqps:// sans ca_cert, ou une non-correspondance entre le certificat et la cléFournir ca_cert ; pour mTLS vérifier la paire client_cert et client_key
Les livraisons arrivent mais aucune SOP ne démarredispatch est agent_loop, ou le déclencheur SOP ne correspond pasDéfinissez dispatch sur sop ou sop_and_agent_loop ; vérifiez la clé de routage trigger

Voir aussi