使用Bosh CLI V2执行命令时遇路径映射错误求助
解决BOSH CLI v2
bosh int 路径查找错误:Expected to find a map at path '/applications/routes' but found '[]interface {}' 这个错误的核心原因很明确:你的applications字段是数组类型(YAML里用-开头标记数组元素),但你在bosh int命令里的路径没有指定数组索引,BOSH CLI不知道该访问数组里的哪一个application对象,所以把/applications/routes识别成了数组而非预期的map结构。
正确的命令写法
你只需要在路径里加上数组索引(数组从0开始计数),就能正确定位到目标字段:
bosh int config.yml --path /applications/0/routes/route
这里的/applications/0指向数组里的第一个(也是你配置里唯一的)application元素,之后再链式访问routes/route就能拿到你要的preprod-paas.itn.group值。
额外验证小技巧
如果你不确定数组里的元素结构或者索引,可以先打印整个applications数组确认:
bosh int config.yml --path /applications
这会输出所有application的完整配置,方便你确认要访问的元素索引。
再帮你梳理下YAML结构
你的config.yml里applications是包裹在数组里的单个对象,结构大概是这样的:
applications: [ { buildpack: php_buildpack, instances: 1, ..., routes: { route: preprod-paas.itn.group } } ]
所以必须指定数组索引才能进入到具体的application对象,否则BOSH CLI会把/applications/routes当成数组的一个子字段,自然找不到对应的map结构。
内容的提问来源于stack exchange,提问作者Melchia
相关产品推荐
相关产品推荐

