记一次项目中yaml文档引发的惨案 (#yaml文档格式#yaml中'-'的作用)

Posted linsky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次项目中yaml文档引发的惨案 (#yaml文档格式#yaml中'-'的作用)相关的知识,希望对你有一定的参考价值。

 项目已经在收尾阶段了,然后老大让我去把dockerCompose.yaml文件中公用配置给抽取一下,就是说以后改配置啊什么的就可以直接在抽出来的公用变量里面改就行了,

不用一个模块一个模块地去改(我们这个项目是微服务项目,十多个模块),本来是个很没技术含量的活儿,但是呢,引发了一场切(diao)尸吊的话题,来看下原始的配置

文件:

技术图片

 

看下官网的语法:

技术图片

 

 我抽取的:

技术图片

 

 然后当然就是报错啦,

技术图片

 

 再然后就是各种检查顺序啊,检查有没有空格的尝试,然后无果,我就和老大汇报说抽不了,如果能抽我切尸吊俩厘米,然后我老大就试了两分钟,就让我切,这是我老大的配置:

技术图片

 

 嘿,这样子改之后,部署截断确实没有问题了,变量也是能用,但是!(尸吊保住了)redis连接不上,回头一一排查,原来的:

 - REDIS-PORT=6379
 - REDIS-PWD=

 这样格式的后面为空,然后我转键值对的时候理所当然地 转成了这个样子:

REDIS-PORT: 6379
REDIS-PWD:

 找了好久,老大发给我一张截图:

技术图片

 

 一个是数组,一个是对象,解析的时候,数据格式不一样,那解析的结果能一样吗?然后,试了试:

技术图片

 

 技术图片

 

 解析结果不对啊,一个为空字符串,一个为null啊,键值对要解析成空字符串应该是这种:

技术图片

 

把文件改了下:

  REDIS-PORT: 6379
  REDIS-PWD: ""果然

果然就不报错了,redis能连接上了,简而言之,就是数据格式原因,困了很久,很开心(尸吊保住了)

以上是关于记一次项目中yaml文档引发的惨案 (#yaml文档格式#yaml中'-'的作用)的主要内容,如果未能解决你的问题,请参考以下文章

记录一次数据库驱动配置引发的惨案

CSDN日报20170301——《一次dns缓存引发的惨案》

Helm 升级引发 YAML 解析器错误

记一次企业高级组网中不正确配置PBR引发的环路排错

一次dns缓存引发的惨案

一次dns缓存引发的惨案