ElasticBeanstalk에서 환경 변수 사용
3576 단어 ElasticBeanstalkAWS
(마지막으로 확인한 것이 꽤 전이므로, 어쩌면 현재는 이대로는 동작하지 않을지도 모릅니다)
환경 유형: Docker
현재 방법
이전에는 /opt/elasticbeanstalk/hooks/common.sh
에 쓰여 있던 설정 파일을 참조해 직접 읽고 있었지만, 최근 EB 의 AMI 의 버젼을 올렸더니 잘 움직이지 않게 되어 있었다 (ami-4aedea4b 로 확인).
배포 스크립트가 사용하고 있던 도구를 발견했기 때문에 이것을 사용하기로 결정합니다.
덧붙여서 환경 변수가 포함된 컨테이너의 구성 파일을 직접 참조하고 싶은 경우는 여기에 있습니다.
/opt/elasticbeanstalk/deploy/configuration/containerconfiguration
1: /opt/elasticbeanstalk/bin/get-config 사용
예를 들면 AWS_ACCESS_KEY_ID
를 취득하고 싶은 경우는 이하.
# 要 root 権限
AWS_ACCESS_KEY_ID=$(/opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:application:environment -o AWS_ACCESS_KEY_ID)
2부: /opt/elasticbeanstalk/containerfiles/support/generate_env 사용
generate_env
를 사용하면 설정된 환경 변수를 한 번에 얻을 수 있습니다.
# 要 root 権限
while read -r ENV; do
export $ENV
done < <(/opt/elasticbeanstalk/containerfiles/support/generate_env)
다만 support 디렉토리가 가변적인 분위기였으므로, 실제로 사용하는 경우는 아래와 같이 get-config 를 사용해 support 디렉토리를 취득하는 편이 좋을지도 모릅니다.
SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_files_dir)
while read -r ENV; do
export $ENV
done < <(${SUPPORT_DIR}/generate_env)
번외편: 이전 방법
위를 적용하기 전까지는 다음을 사용했습니다.
source /opt/elasticbeanstalk/hooks/common.sh
touch /tmp/env.sh
chmod 600 /tmp/env.sh
jq .docker.env[] $EB_CONFIG_FILE | tr -d \" > /tmp/env.sh
source /tmp/env.sh
rm /tmp/env.sh
이 방법은 Amazon S3를 Docker 프라이빗 리포지토리로 사용하여 AWS ElasticBeanstalk 환경에 배포 에서 소개된 방법입니다.
환경 유형: Multi-container Docker
코멘트로 가르쳐 주신 방법입니다만, Multi-container Docker 의 경우는 아래와 같은 방법으로 환경 변수를 취득 가능한 것 같습니다.
jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" <(/opt/elasticbeanstalk/bin/get-config environment) > /tmp/envs
. /tmp/envs
Reference
이 문제에 관하여(ElasticBeanstalk에서 환경 변수 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lciel/items/1df53db1c0a63be10564
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/opt/elasticbeanstalk/deploy/configuration/containerconfiguration
# 要 root 権限
AWS_ACCESS_KEY_ID=$(/opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:application:environment -o AWS_ACCESS_KEY_ID)
# 要 root 権限
while read -r ENV; do
export $ENV
done < <(/opt/elasticbeanstalk/containerfiles/support/generate_env)
SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_files_dir)
while read -r ENV; do
export $ENV
done < <(${SUPPORT_DIR}/generate_env)
source /opt/elasticbeanstalk/hooks/common.sh
touch /tmp/env.sh
chmod 600 /tmp/env.sh
jq .docker.env[] $EB_CONFIG_FILE | tr -d \" > /tmp/env.sh
source /tmp/env.sh
rm /tmp/env.sh
코멘트로 가르쳐 주신 방법입니다만, Multi-container Docker 의 경우는 아래와 같은 방법으로 환경 변수를 취득 가능한 것 같습니다.
jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" <(/opt/elasticbeanstalk/bin/get-config environment) > /tmp/envs
. /tmp/envs
Reference
이 문제에 관하여(ElasticBeanstalk에서 환경 변수 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lciel/items/1df53db1c0a63be10564텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)