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