
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OpenFaaS RabbitMQ Connector 是一个非官方的 OpenFaaS 触发器,基于 RabbitMQ 消息触发 OpenFaaS 函数。它通过 RabbitMQ 的 Routing keys 调用监听特定 topic 的 OpenFaaS 函数,实现从 RabbitMQ 消息到 OpenFaaS 函数的事件驱动触发。
log,monitoring,billing适用于需要通过 RabbitMQ 消息异步触发 OpenFaaS 函数的场景,例如:
需通过 OpenFaaS CLI 或 REST API 部署函数,并添加 topic 注解,指定函数监听的主题(逗号分隔)。
示例:使用 OpenFaaS CLI 部署函数
编写函数配置文件 stack.yml,添加 annotations 字段:
yamlversion: 1.0 provider: name: openfaas gateway: http://gateway:8080 functions: log-processor: image: your-registry/log-processor:latest annotations: topic: "log,monitoring" # 监听 log 和 monitoring 主题
部署函数:
bashfaas-cli deploy -f stack.yml
| 参数名 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
basic_auth | 是否启用 basic_auth 认证(OpenFaaS 网关) | - | 1/true(启用)、0/false(禁用) |
secret_mount_path | 存储 basic_auth 密钥的文件路径 | - | 密钥文件绝对路径 |
OPEN_FAAS_GW_URL | OpenFaaS 网关 URL | http://gateway:8080 | 网关地址(如 https://gateway:443) |
REQ_TIMEOUT | 函数调用请求超时时间 | 30s | 时间字符串(如 10s、2m) |
TOPIC_MAP_REFRESH_TIME | 主题映射刷新时间(刷新函数与主题的关联关系) | 60s | 时间字符串(如 30s、5m) |
INSECURE_SKIP_VERIFY | 是否跳过 OpenFaaS 网关 HTTPS 证书验证(不推荐生产环境启用) | false | true/false |
MAX_CLIENT_PER_HOST | 单个函数主机的最大连接数 | 256 | 正整数 |
| 参数名 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
TLS_ENABLED | 是否启用 TLS 连接 RabbitMQ | false | true/false |
TLS_CA_CERT_PATH | CA 证书文件路径(需确保进程有权限访问) | - | 证书文件绝对路径 |
TLS_SERVER_CERT_PATH | 客户端证书文件路径(需确保进程有权限访问) | - | 证书文件绝对路径 |
TLS_SERVER_KEY_PATH | 客户端密钥文件路径(需确保进程有权限访问) | - | 密钥文件绝对路径 |
注意:启用 TLS 时,
RMQ_HOST需与证书中的通用名称(Common Name)一致,否则连接会失败。
| 参数名 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
RMQ_HOST | RabbitMQ 主机名或 IP | - | 字符串(如 rabbitmq:5672) |
RMQ_PORT | RabbitMQ 端口号 | - | 整数(如 5672 或 TLS 端口 5671) |
RMQ_VHOST | RabbitMQ 虚拟主机(vhost) | / | 字符串 |
RMQ_USER | RabbitMQ 用户名(与 RMQ_PASS 同时为空时不使用认证) | "" | 字符串 |
RMQ_PASS | RabbitMQ 密码(与 RMQ_USER 同时为空时不使用认证) | "" | 字符串 |
PATH_TO_TOPOLOGY | RabbitMQ 交换器(Exchange)拓扑配置文件路径(必填) | - | YAML 文件绝对路径 |
需通过 YAML 文件定义 RabbitMQ 交换器(Exchange)配置,路径由 PATH_TO_TOPOLOGY 指定。配置格式如下:
yaml# 交换器配置列表 - name: Exchange_Name # 交换器名称(必填) topics: [Foo, Bar] # 交换器关联的主题列表(必填) declare: true # 是否声明交换器(若已存在,会验证配置是否匹配),默认:false type: "direct" # 交换器类型(必填,仅支持 direct 或 topic) durable: false # 交换器是否持久化(RabbitMQ 重启后保留),默认:false auto-deleted: false # 所有消费者断开后是否自动删除交换器,默认:false
队列自动配置规则
OpenFaaS_{Exchange_Name}_{Topic}(如交换器 logs 的主题 error,队列名为 OpenFaaS_logs_error)。durable 和 auto-deleted 属性与所属交换器保持一致。bashdocker run -d \ --name rabbitmq-connector \ -e RMQ_HOST=rabbitmq \ -e RMQ_PORT=5672 \ -e RMQ_USER=guest \ -e RMQ_PASS=guest \ -e OPEN_FAAS_GW_URL=http://gateway:8080 \ -e PATH_TO_TOPOLOGY=/topology/topology.yaml \ -e TOPIC_MAP_REFRESH_TIME=30s \ -e REQ_TIMEOUT=15s \ -v /path/to/your/topology.yaml:/topology/topology.yaml \ -v /path/to/basic-auth-secret:/secret/basic-auth \ # 若启用 basic_auth templum/rabbitmq-connector:latest
yaml- name: logs-exchange topics: [error, info, warn] declare: true type: "topic" durable: true auto-deleted: false - name: billing-exchange topics: [invoice, payment] declare: false type: "direct" durable: false
如有 Bug 报告或功能需求,请通过 https://github.com/Templum/rabbitmq-connector/issues 提交。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务