【问题标题】:How can I use AWS Parameter store variables in Elastic Beanstalk Environment Variable?如何在 Elastic Beanstalk 环境变量中使用 AWS 参数存储变量?
【发布时间】:2019-11-05 13:48:19
【问题描述】:

我有一个连接到 AWS 上的 PostgreSQL 的 Spring Boot 应用程序。我想在 AWS 参数存储中将数据库配置(如 DB URL、用户名和密码)存储为安全字符串。

我想像我们设置的那样从环境变量中的 AWS Parameter store 访问这些参数:

SERVER_PORT = 5000 
SPRING_DATASOURCE_PASSWORD = /dev/databases/postgresql/awsdbinstance/password 

其中/dev/databases/postgresql/awsdbinstance/password 是 AWS 参数存储的名称。

我还向 EC2 实例添加了一个 IAM 策略以进行 SSMReadOnly 访问,但仍然无法访问这些值。我在做什么错和 我怎样才能做到这一点?

另外,实现这一目标的标准方法是什么?

我不想在 YAML 文件中添加一个试图从 AWS 参数存储中检索值的属性,而是我认为如果通过 Elastic Beanstalk 环境变量本身注入该属性会更好。

【问题讨论】:

  • 你有没有解决这个问题。其实我也面临同样的问题。
  • @Sanjay,不。我没有得到任何解决方案。

标签: amazon-web-services amazon-elastic-beanstalk aws-parameter-store


【解决方案1】:

我也遇到了同样的问题。我还没有一个可行的解决方案,但我总结了一些可能有助于其他人解决它的想法:

  1. 有一些包可以在你的环境中注入 SSM 参数(例如 https://www.npmjs.com/package/@mschnee/ssm-env?activeTab=readme)你甚至可以创建一个脚本来自己做。

  2. 您可以在 ebextension 中调用此脚本,因此每次重新构建 env 时,都会在您的 env 中设置 env 变量。

我对第二点有点迷茫,但是,应该是这样的

container_commands:
  0100_inject_env_variables:
    command: /scripts/inject_env_variables.sh

还有 inject_env_variables.sh 文件:

ssm-env EXPORT "/variables-path1/" "/variables-path2/" -- node path/to/app.js > .env

正如我之前告诉你的,我还没有正确的答案,但我认为这就是方法。让我们看看是否有经验更丰富的开发人员纠正我。

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 2017-07-21
    • 2016-12-10
    • 2018-04-27
    • 2020-02-05
    • 1970-01-01
    • 2012-12-13
    • 2017-02-28
    • 2020-11-09
    相关资源
    最近更新 更多