Elastic Beanstalk 인스턴스 셸에서 환경 변수를 사용하려면 어떻게 해야 하나요?

2분 분량
0

AWS Elastic Beanstalk 인스턴스 셸의 환경 변수를 사용하고 싶습니다.

간략한 설명

Elastic Beanstalk에서 환경 변수는 운영 체제(OS)에 노출되지 않습니다. 환경 변수가 Elastic Beanstalk로 설정된 경우 OS의 환경 변수와 함께 유틸리티를 사용할 수 있습니다. Elastic Beanstalk 환경 변수와 함께 유틸리티를 사용하려면 환경 변수를 OS 변수로 내보내는 .ebextension을 사용해야 합니다.

Elastic Beanstalk 인스턴스 셸에서 환경 변수를 사용하려면 다음 단계를 완료합니다.

  1. get-config 유틸리티를 사용하여 Elastic Beanstalk 환경 변수를 읽습니다.
  2. get-config 출력을 JSON에서 셸 변수로 변환하려면 jq 웹 사이트에서 jq 유틸리티를 사용합니다.
  3. /etc/profile.d/local.sh 파일에 변수를 저장합니다. Bash는 이 파일을 읽어 변수를 OS로 내보냅니다.

해결 방법

  1. 애플리케이션 소스 번들에 .ebextension 파일을 생성한 후 다음 정보를 포함합니다.
    commands:
        setvars:
            command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/local.sh
    packages:
        yum:
            jq: []
    참고: 앞의 예에서 구성 파일의 이름은 setvars.config입니다.
  2. .ebextension 파일을 저장한 다음 Elastic Beanstalk 환경에 배포합니다.
  3. .ebextension 파일이 변수를 내보내는지 테스트하려면 SSH를 사용하여 인스턴스에 연결합니다. 그리고 나서 다음 명령을 실행합니다.
    env | grep VARIABLE_NAME
    참고: VARIABLE_NAME을 사용자 환경에 정의된 변수로 설정합니다. 테스트하기 전에 기존 세션을 모두 닫습니다. 그런 다음 SSH를 사용하여 다시 연결합니다.

환경 변수가 올바르게 설정된 경우 출력은 다음 예제와 유사합니다. RDS_PORT 변수는 Elastic Beanstalk 환경에서 정의됩니다.

$ env|grep RDS_PORTRDS_PORT=3306

참고: .ebextension에서 명령을 사용하기 때문에 새 배포로 local.sh 파일만 업데이트할 수 있습니다. 환경에서 변수를 추가하거나 변경하는 경우 변수를 OS로 내보내기 전에 새 배포를 만듭니다.

AWS 공식
AWS 공식업데이트됨 10달 전
댓글 없음

관련 콘텐츠