You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kong DBless模式执行deck sync报错无法创建services实体问题

故障原因
  • DBless模式下的Kong不支持通过Admin API动态逐实体增删改服务、路由这类配置对象:该模式下所有配置默认在Kong启动时从指定的声明式配置文件全量加载,运行阶段Admin API仅开放配置查询、全量替换整份声明式配置的接口,禁止单条创建/更新/删除实体的操作。你直接执行无参数的deck sync时,deck默认以数据库模式的逻辑逐次调用单实体创建接口,就会触发405报错。
  • 你编写的声明式配置文件存在YAML缩进错误,services数组下的host、name等字段、routes数组下的字段缩进层级不对,即便解决了同步逻辑问题,配置也会因YAML解析失败无法加载。
解决方法
  1. 先修正声明式配置文件的缩进问题,修正后的合法配置如下:
_format_version: "1.1"
services:
  - host: mockbin.org
    name: example_service
    port: 80
    protocol: http
    routes:
      - name: mocking
        paths:
          - /mock
        strip_path: true
  1. 选择以下任意一种方式让配置生效:
    • 方式一(适配你当前的kong.conf配置):保存修正后的配置文件,直接重启Kong服务。Kong启动时会自动加载你在kong.conf中指定路径的声明式配置,启动完成后服务和路由即可正常生效,无需额外执行deck同步命令。
    • 方式二(不重启服务通过deck同步):执行deck同步命令时追加--db-mode off参数,显式告知deck当前运行的是DBless模式的Kong,deck会自动切换为全量配置推送逻辑,而非逐实体调用创建接口,执行命令如下:
      deck sync --db-mode off -s /temp/kong/kong.yml
      
      注意:该方式推送的配置会全量覆盖Kong当前运行时的所有配置,不会做增量合并。

内容的提问来源于stack exchange,提问作者Jahanzaib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:24:21