8

我希望使用 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,会打印出正确的环境变量,因为它是我在脚本中设置的环境变量以及我在 EB AWS 控制台上的 EB 环境变量中设置的内容。但是,在我的应用程序中打印它们时,我看不到我通过脚本设置的环境变量。

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

有没有办法按照我在这里尝试的方式设置 EB 环境变量?也许我应该使用一个特殊的命令而不是export

4

0 回答 0