【问题标题】:How to read an environment variable from AWS ECS task definition in Spring?如何在 Spring 中从 AWS ECS 任务定义中读取环境变量?
【发布时间】:2021-05-13 12:20:10
【问题描述】:

在那里,我已经在 ECS 任务定义中设置了环境变量,如屏幕截图所示。我假设我可以简单地将其视为常规环境并在 Spring 中像这样读取它:

@Value("${activeDirectoryPwd}")
private String adPwd;

但不知何故,变量 adPwd 返回 null。我必须以不同的方式阅读吗?

【问题讨论】:

    标签: spring spring-boot environment-variables amazon-ecs ecs-taskdefinition


    【解决方案1】:

    环境变量是环境变量,不管它们是如何定义的,所以你的容器本身可能会发生一些事情。您的 Spring 应用程序是直接在容器中启动还是有其他服务在运行它?

    作为单独的说明,您不应该像这样将密码直接传递到任务定义中。相反,您应该将其存储在 Secrets Manager 或 Parameter Store 和 pass the secret through in the task definition 中。这可以防止在 AWS 控制台中读取密钥。

    【讨论】:

    • 感谢您的提示,我们最终会将其移至机密,现在只想弄清楚 env 在这里是如何工作的。我们直接在 docker 容器中启动 Spring。在这种情况下,我们是否缺少任何特定的设置?或者你会建议我们在哪里调查?
    • 你在使用我可以查看的公共容器吗?
    • 这是我们公司内部的,但奇迹般的是,它今天早上开始工作。我们使用 Harness 来管理我们的 cicd 管道并在那里设置环境,不确定这是否只是来自 Harness 或 ECS 的暂时错误,将进行一些调查。但回到你的答案,一个环境只是一个环境,谢谢。
    猜你喜欢
    • 2017-09-05
    • 2021-01-14
    • 2019-12-01
    • 1970-01-01
    • 2021-12-01
    • 2017-03-04
    • 2019-08-17
    • 2020-08-03
    • 1970-01-01
    相关资源
    最近更新 更多