如何在扩展中最佳使用AWS Secrets Manager?

时间:2019-07-26 15:59:18

标签: amazon-web-services amazon-elastic-beanstalk aws-secrets-manager ebextensions

我希望使用AWS Secrets Manager获取机密并将其设置为我的Elastic Beanstalk实例上的环境变量。

我已经在ebextensions文件上编写了一个脚本,该脚本调用Secrets Manager CLI来获取我的密码,然后使用该密码填充EB实例的env变量。由于它是Linux实例,因此我正在尝试export ENV_VAR_NAME=env_value。这是我到目前为止的内容:

packages:
  yum:
    epel-release: []
    jq: []

files:
  "/home/ec2-user/test.sh" :
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash
      config=$(aws --region us-west-1 secretsmanager get-secret-value --secret-id secret | jq -rc '.SecretString'')

      export SECRET_KEY=$(echo $config | jq -rc '.awsKey')

      # Used to print current env variables
      env

commands:
  0_test:
    command: /home/ec2-user/test.sh

#I've also tried replacing 'commands' with 'container_commands'
container_commands:
  0_test:
    command: /home/ec2-user/test.sh

当我在container_commands中运行脚本时,会打印出正确的env变量,因为它是我在脚本中设置的env变量以及在EB AWS上的EB env变量中设置的变量安慰。但是,在我的应用程序中打印它们时,看不到通过脚本设置的env变量。

当我在commands中运行脚本时,我似乎根本没有写正确的env变量集。

是否有一种方法可以在这里尝试设置EB env变量?也许我应该使用一个特殊的命令而不是export

0 个答案:

没有答案