AWS Secrets Manager を使用してシークレットを取得し、それらを Elastic Beanstalk インスタンスの環境変数として設定しようとしています。
Secrets Manager CLI を呼び出してシークレットを取得するスクリプトを ebextensions ファイルに記述し、そのシークレットを使用して EB インスタンスの環境変数を設定しました。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
おそらく、 ?ではなく、使用する必要がある特別なコマンドがあります。