【问题标题】:Not able to read int values from Kubernetese config maps无法从 Kubernetes 配置映射中读取 int 值
【发布时间】:2020-10-09 10:58:11
【问题描述】:

我正在尝试在 kubernetese 上部署一个 springboot 应用程序。我已将所有环境变量存储在配置映射中并尝试从那里读取值。有些属性我们需要读取 int 值。

在我们的代码中,它看起来像这样:

application.properties:

TOKEN_RETRY_COUNT=3

由于我们必须从 ConfigMap 中读取它,我们已经更新了我们的 application.properties,如下所述:

更新 application.properties :

TOKEN_RETRY_COUNT=${STARGATE_TOKEN_RETRY_LIMIT}

配置地图

在 Config Maps 中配置的值是这样的。我必须加上双引号,因为没有引号是不允许的。

"STARGATE_TOKEN_RETRY_LIMIT": "3",

现在,当我在 kubernetese 上部署后尝试读取这些值时,出现以下错误:

对于 STARGATE_TOKEN_RETRY_LIMIT:

Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "STARGATE_TOKEN_RETRY_LIMIT"

目前,我已更新代码以将此值作为字符串,然后将其解析为 int,但这不是理想的方式。应该有一些标准的方法来获取不同的类型。

如果我们无法在 Config Maps 中处理不同类型,那么在 kubernetese 上为 Springboot 应用程序传递不同应用程序属性的理想方法是什么?

【问题讨论】:

    标签: spring-boot kubernetes kubectl configmap


    【解决方案1】:

    我认为该问题与将属性值 (3) 指定为字符串 ("3") 无关。如果您仔细阅读错误消息,您将看到 NumberFormatException 是由尝试将 STARGATE_TOKEN_RETRY_LIMIT(字面意思)解析为 int 引起的。配置映射传递给应用程序/容器的方式可能有问题。

    【讨论】:

      猜你喜欢
      • 2021-01-24
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2018-10-31
      • 1970-01-01
      • 2016-12-20
      相关资源
      最近更新 更多