【问题标题】:How to pass env variable into application.yaml file in Helidon如何将环境变量传递到 Helidon 中的 application.yaml 文件中
【发布时间】:2020-12-07 14:34:26
【问题描述】:

我想传递这样的东西

tracing:
  service: "test-service"
  host: ${TRACING_AGENT_HOST}
  port: ${PORT}

【问题讨论】:

    标签: trace jaeger helidon


    【解决方案1】:

    无论您使用的是 Helidon SE 还是 Helidon MP,配置源都是“堆叠”的,并且属性标量是独立的。所以如果你不指定:

    tracing:
      host:
    

    ……完全没有,如果你确保已经安装了环境变量读取配置源,那么它将从环境中读取。

    您可以在此处阅读有关 Helidon SE 专有配置系统的更多信息:https://helidon.io/docs/v2/#/se/config/01_introduction

    您可以在此处阅读有关 MicroProfile 配置系统(Helidon MP 实现)的更多信息:https://download.eclipse.org/microprofile/microprofile-3.3/microprofile-spec-3.3.html#mp-config

    【讨论】:

      【解决方案2】:

      application.yaml 就像一个静态属性文件。它不参与变量替换。

      仔细阅读https://helidon.io/docs/latest/#/mp/guides/03_config 处的默认配置的源优先级段落,并观察如何覆盖嵌入式配置文件中的属性。

      在这种情况下,您可以简单地通过向 java 命令行传递您所期望的自定义​​变量来覆盖您想要的属性。

      例如,您可以实现如下所述的目标:

      tracing:
        service: "test-service"
        host: default-host-name
        port: 8080
      
      java -Dtracing.host=remote-hostname -Dtracing.port=8080 -jar your_artifact.jar
      

      export TRACING_HOST=remote-hostname
      export TRACING_PORT=8080
      
      java -jar your_artifact.jar
      

      【讨论】:

        猜你喜欢
        • 2019-11-08
        • 1970-01-01
        • 2023-01-20
        • 1970-01-01
        • 2022-08-17
        • 2018-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多