当前位置: 首页 > 知识库问答 >
问题:

访问环境变量赋值的属性名称中带破折号的属性的值

郁吉星
2023-03-14

我有一个values.yaml,我将一个值存储在一个属性中,还有一个deployment.yaml,我尝试将该值赋给一个环境变量。问题是属性名包含破折号,并抛出以下错误消息。

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'security.enable-mock-service' to boolean:

    Property: security.enable-mock-service
    Value:
    Origin: System Environment Property "SECURITY_ENABLEMOCKSERVICE"
    Reason: failed to convert java.lang.String to boolean (caused by java.lang.IllegalArgumentException: A null value cannot be assigned to a primitive type)

“空值”是因为我试图将名称引用为 {{ Values.security.enablemockservice | 引号 }},而不使用缓行绑定的破折号,但实际的属性名称是 Values.security.enable-mock-service。如果我尝试在部署.yaml中引用该名称作为 {{ 值.security.enable-mock-服务|引用 }} ,我会收到以下错误:

Error: UPGRADE FAILED: parse error at (project/templates/deployment.yaml:105): bad character U+002D '-'

显然,宽松的绑定不能这样使用,或者我不知道如何使用它。还有其他方法可以引用这个属性吗?

下面是我的两个文件中的代码:

values.yaml

  security:
     enable-mock-service: "false"

部署. yaml

- name: SECURITY_ENABLEMOCKSERVICE
  value: {{ .Values.security.enablemockservice | quote }}

共有1个答案

宗政金鹏
2023-03-14

我们希望写出这样的内容:

   value: {{ .Values.security.enable-mock-service | quote }}

但是,Dash"-"是YAML中的保留字符,因此我们不能直接使用它。

根据YAML规范,要转义破折号“-”,有多个选项:

value: '{{ .Values.security.enable-mock-service | quote }}'
value: "{{ .Values.security.enable-mock-service | quote }}"
value: 
    {{ .Values.security.enable-mock-service | quote }}
value: >-
    {{ .Values.security.enable-mock-service | quote }}
value: |-
    {{ .Values.security.enable-mock-service | quote }} 
 类似资料:
  • 问题内容: 我正在尝试反序列化JSON。我的根对象具有单个属性“ en.pickthall”。我正在使用动态类型读取JSON。我以为我可以取消“。” 在属性中,因为它是本地JSON文件,但是必须有某种方法可以访问此类属性 问题答案: C#没有任何引用标识符的方式。如果不是有效的标识符,则唯一的选择就是反射。 但是,您的JSON解串器返回的对象可能会更改了标识符,以使其在C#中可用- 您可能希望枚举

  • 问题内容: 当字符串具有破折号时,我无法从json对象检索值: 如果我尝试引用已解析的文件,它将返回但jsonObj.user_id将返回6789 我没有办法修改外部api调用返回的值,并且试图解析返回的字符串以删除破折号也会破坏传递的url等。救命? 问题答案: 是减法表达式(即)。 要访问包含不能出现在标识符中的字符的键,请使用方括号:

  • 问题内容: 我正在看http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options为jQuery创建一个简单的插件。在有关选项和设置的部分之后,我执行了以下操作,该操作不起作用(脚本遇到设置后退出)。 一旦我从背景色中删除了破折号,一切就可以正常工作。 我是否缺少某些内容,或者jQuery文档是否错误? 问题答案: 没有。解析器会将其解释

  • 问题内容: 我们有一个JSON对象,其中一个对象的名称中带有短划线。例如下面。 我们如何反序列化此json? 问题答案: 您可以使用DataContractJsonSerializer实现此目的 现在您可以使用以下方式反序列化它:

  • 我已经在windows上设置了环境变量,实际上当我回显它们时,我可以看到它们的详细信息,但是,当我运行测试时,它们似乎看不到环境变量。我见过类似的问题,但它们没有帮助。像这个,这个等等,但是运气不好。 这是我的应用程序测试。属性文件 那么,这就是我得到的例外:

  • 我有一节课: 值是唯一的,如何通过其值获取属性的名称? 通过反射,例如: