在Java代码中封装AWS Lambda环境变量访问

8zzbczxx  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(87)

随着AWS Lambda部署的增长,通过System.getenv()读取的环境变量越来越多。我没有找到管理所有这些VAR的最佳实践。
一个明显的解决方案是将其重构为Spring/Guice并使用配置器,但是考虑到我们尽可能地使其接近普通的旧java以减少JAR大小,什么可以被认为是封装配置的好策略?Apache Commons配置?构建自定义配置/环境类?
任何建议都非常感谢!

v440hwme

v440hwme1#

所以我想一种非常低效的处理方法是在代码中分散环境引用:

if ("true".equalsIgnoreCase(System.getenv("ENABLE_FEATURE_X"))) {
  // enable the feature
}

它完成了工作,但有两个大的副作用:

  • 嘲笑System.getenv并不理想
  • 违反DRY原则

我想知道引入EnvContext类是否是一个足够简单的解决方案?

Env env = Env.getInstance()
if (env.isFeatureEnabled()) {
  // enable the feature
}

相关问题