Cloud Run 환경 변수 정보

Cloud Run 서비스에 임의의 환경 변수를 설정할 수 있습니다. Cloud Run은 이러한 키-값 쌍을 컨테이너에 삽입하고 코드에서 액세스할 수 있도록 합니다. 소스 코드에서 함수를 배포할 때 빌드팩에 구성 정보를 전달하는 데도 사용할 수 있습니다.

환경 변수는 단일 서비스에 바인딩되며 Google Cloud 프로젝트의 다른 서비스에는 표시되지 않습니다. 각 변수는 배포된 서비스에 저장되며 바인딩된 서비스와 동일한 수명 주기 내에 존재합니다.

최대 환경 변수 수

Cloud Run 서비스에 최대 1,000개의 환경 변수를 설정할 수 있습니다.

변수 수명 주기

모든 환경 변수는 서비스의 배포에 결합되며 배포를 통해서만 설정 또는 변경할 수 있습니다. 어떠한 이유로든 배포에 실패하면 환경 변수에 대한 변경사항이 적용되지 않습니다. 따라서 환경 변수를 변경하려면 배포에 성공해야 합니다.

권장사항

다음 섹션에서는 환경 변수를 구성하기 위한 권장사항을 설명합니다.

보안 비밀 관리

서비스 구성에 환경 변수를 사용할 수 있지만 데이터베이스 사용자 인증 정보 또는 API 키와 같은 비밀번호를 저장하는 방법으로 사용하는 것은 좋지 않습니다. 민감한 값은 소스 코드 및 환경 변수 외부에 저장해야 합니다. 일부 실행 환경 또는 일부 프레임워크를 사용하면 환경 변수의 내용이 로그로 전송될 수 있습니다. 또한 민감한 사용자 인증 정보는 YAML 파일, 배포 스크립트 또는 소스 제어 시스템에 저장하지 않는 것이 좋습니다. 환경 변수는 프로젝트 뷰어 이상의 권한을 가진 모든 사용자에게 표시됩니다.

보안 비밀을 저장하려면 Secret Manager를 사용하는 것이 좋습니다. Secret Manager에 저장된 보안 비밀에 액세스하도록 서비스를 구성하려면 보안 비밀 구성을 참고하세요.

Cloud KMS와의 Cloud Run별 통합은 없습니다.

예약된 환경 변수

컨테이너 런타임 계약에 정의된 환경 변수는 예약되어 있으며 설정할 수 없습니다. 특히 PORT 환경 변수는 Cloud Run을 통해 컨테이너 내부에 삽입되므로 직접 설정해서는 안 됩니다.

함수에 예약된 환경 변수

Cloud Run은 함수를 배포할 때 다음 런타임 환경 변수를 자동으로 설정합니다.

설명
FUNCTION_TARGET 예약됨: 실행할 함수
FUNCTION_SIGNATURE_TYPE 예약됨: 함수의 유형(HTTP 함수의 경우 http, 이벤트 기반 함수의 경우 event)
K_SERVICE 예약됨: 함수 리소스 이름
K_REVISION 예약됨: 함수의 버전 식별자
PORT 예약됨: 함수가 호출되는 포트

일부 추가 환경 변수는 함수가 사용하는 런타임에 따라 자동으로 설정됩니다. 이는 런타임 운영체제(예: DEBIAN_FRONTEND, SHLVL 또는 PATH) 및 언어 런타임(예: NODE_ENV, VIRTUAL_ENV 또는 GOPATH)을 기반으로 합니다.

자동으로 설정된 환경 변수 이외의 환경에서 제공된 환경 변수는 향후 런타임 버전에서 변경될 수 있습니다. 명시적으로 설정하지 않은 환경 변수를 사용하거나 수정하지 않는 것이 좋습니다.

환경에서 제공하는 환경 변수를 수정하면 예기치 않은 결과가 발생할 수 있습니다. 이러한 환경 변수를 수정하려는 시도는 차단되거나 더욱이 시작할 수 없는 함수와 같은 의도하지 않은 결과를 초래할 수 있습니다. 모든 환경 변수에 고유 키를 사용하여 프리픽스로 지정하여 충돌을 피하는 것이 좋습니다.

또한 다음 환경 변수는 사용할 수 없습니다.

설명
비어 있음('') 키는 빈 문자열일 수 없습니다.
= 키에는 '=' 문자가 포함될 수 없습니다.
X_GOOGLE_ 키에는 프리픽스 X_GOOGLE_이 포함될 수 없습니다.

함수의 변수 크기 제한

런타임 환경 변수 이름과 개별 함수 값이 사용하는 총 바이트 수는 32KiB로 제한됩니다. 이 전체 용량을 초과하지 않는 한 개별 키나 값에는 구체적인 한도가 적용되지 않습니다.

빌드 환경 변수의 경우 최대 100개의 변수를 정의할 수 있으며 정의 문자열 foo=bar는 64KiB로 제한됩니다.

함수에서 휴대용 환경 변수 사용

함수에서 작동하는 환경 변수는 다른 런타임 환경(다른 언어) 또는 특정 도구나 라이브러리에서 작동하지 않을 수 있습니다. 다른 플랫폼에 의해 거부될 수도 있습니다.

환경 변수에 관한 POSIX 표준을 따르면 이러한 문제를 피할 수 있습니다. Google Cloud 콘솔을 사용하여 변수를 수정하는 경우 이동성 문제를 일으킬 수 있는 변수를 정의할 때마다 Google Cloud 콘솔에서 경고를 표시하지만 배포를 막지는 않습니다. 환경 변수 키는 이동식 문자 집합에 정의된 대로 대문자, 숫자, <underscore> (_)만으로 구성하고 숫자로 시작하지 않는 것이 좋습니다.