我希望使用 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
?