클래스: Mongo::Server::AppMetadata::Environment Private
- 상속:
-
객체
- 객체
- Mongo::Server::AppMetadata::Environment
- 다음에 정의됨:
- lib/ Mongo/ 서버/app_metadata/environment.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
프로그램이 실행 중인 현재 환경을 추론하고 보고 위해 핸드셰이크 사양의 로직을 구현합니다.
여기에는 FaaS 환경 검사와 컨테이너 (Docker) 및/또는 오케스트레이터(Kubernetes)의 존재 여부 확인이 포함됩니다.
네임스페이스 아래에 정의됨
클래스: MissingVariable, TooManyEnvironments, TypeMismatch, ValueTooLong
상수 요약 접기
- DOCKERENV_PATH =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
.dockerenv 파일의 이름과 위치 Docker 의 존재를 알리는 파일 입니다.
'/.dockerenv'
- MAXIMUM_밸류_LENGTH =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 값은 사양에 명시적으로 지정되지 않았으며 512 보다 작은 것으로 암시될 뿐입니다.
500
- 판별자 =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
존재하는 환경 변수에 따라 활성화된 FaaS 환경을 결정하는 매핑입니다.
{ 'AWS_EXECUTION_ENV' => { 패턴: /^AWS_Lambda_/, 이름: 'aws.lambda' }, 'AWS_LAMBDA_RUNTIME_API' => { 이름: 'aws.lambda' }, 'FUNCTIONS_WORKER_RUNTIME' => { 이름: 'azure.func' }, 'K_SERVICE' => { 이름: 'gcp.func' }, 'FUNCTION_NAME' => { 이름: 'gcp.func' }, 'VERCEL' => { 이름: 'vercel' }, }.동결
- COERCIONS =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 유형의 값을 강제로 적용하는 방법을 설명합니다.
{ string: ->(v) { 문자열(v) }, 정수: ->(v) { Integer(v) } }.동결
- FIELDS =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
각 FaaS 환경에 필요한 필드와 예상 유형, 핸드셰이크 문서 에서 이름을 지정하는 방법을 설명합니다.
{ 'aws.lambda' => { 'AWS_REGION' => { 필드: : 리전, 유형: : 문자열 }, 'AWS_LAMBDA_FUNCTION_MEMORY_SIZE' => { 필드: :memory_mb, 유형: :integer }, }, 'azure.func' => {}, 'gcp.func' => { 'FUNCTION_MEMORY_MB' => { 필드: :memory_mb, 유형: :integer }, 'FUNCTION_TIMEOUT_SEC' => { 필드: :timeout_sec, 유형: :integer }, 'FUNCTION_REGION' => { 필드: : 리전, 유형: : 문자열 }, }, 'vercel' => { 'VERCEL_REGION' => { 필드: : 리전, 유형: : 문자열 }, }, }.동결
인스턴스 속성 요약 접기
-
#오류 ⇒ string | nil
읽기 전용
비공개
유효한 FaaS 환경이 감지되지 않은 이유를 설명하는 오류 메시지이며, 오류가 발생하지 않은 경우 nil입니다.
-
필드 #개 ⇒ 해시 | nil
읽기 전용
비공개
감지된 FaaS 환경을 설명하는 필드입니다.
-
#이름 ⇒ string | nil
읽기 전용
비공개
감지된 FaaS 환경의 이름이거나, 유효한 FaaS 환경이 감지되지 않은 경우 nil입니다.
인스턴스 메서드 요약 접기
-
#Amazon Web Services? ⇒ true | false
비공개
현재 환경이 유효한 Amazon Web Services Lambda 환경인지 쿼리합니다.
-
#Azure? ⇒ true | false
비공개
현재 환경이 유효한 Azure 환경인지 쿼리합니다.
-
#컨테이너 ⇒ 해시 | nil
비공개
감지된 컨테이너 정보를 쿼리합니다.
-
#faas? ⇒ true | false
비공개
현재 환경이 유효한 FaaS 환경인지 쿼리합니다.
-
#GCP? ⇒ true | false
비공개
현재 환경이 유효한 GCP 환경인지 쿼리합니다.
-
#initialize ⇒ 환경
생성자
비공개
새 AppMetadata::Environment 객체 를 만들고 현재 ENV 변수에서 초기화합니다.
-
#현재? ⇒ true | false
비공개
환경 정보를 감지할 수 있는지 여부를 쿼리합니다.
-
#to_h ⇒ 해시
비공개
감지된 환경 정보를 해시로 컴파일합니다.
-
#vercel? ⇒ true | false
비공개
현재 환경이 유효한 Vercel 환경인지 쿼리합니다.
생성자 세부 정보
#initialize ⇒ 환경
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 AppMetadata::Environment 객체 를 만들고 현재 ENV 변수에서 초기화합니다. FaaS 환경이 감지되지 않거나 환경에 유효하지 않거나 상충되는 상태 가 포함된 경우 {nil}로 설정하다 {name}로 초기화됩니다.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 111줄 def 초기화 @fields = {} @error = nil @name = Detect_environment 채우기_FAAS_필드 감지_컨테이너 구출 TooManyEnvironments => e self.오류 = "너무 많은 환경이 감지되었습니다: #{e.}" 구출 MissingVariable => e self.오류 = "누락된 환경 변수: #{e.}" 구출 TypeMismatch => e self.오류 = e. 구출 ValueTooLong => e self.오류 = "#{e.}값 이 너무 깁니다" end |
인스턴스 속성 세부 정보
#error ⇒ String | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이러한 오류 메시지는 사용자에게 전파되어서는 안 됩니다. 문제 해결 및 디버깅에만 사용됩니다.)
유효한 FaaS 환경이 감지되지 않은 이유를 설명하는 오류 메시지를 반환하고, 오류가 발생하지 않은 경우 nil을 반환합니다.
105 106 107 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 105줄 def 오류 @error end |
필드 #개 ⇒ 해시 | nil (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
감지된 FaaS 환경을 설명하는 필드를 반환합니다.
98 99 100 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 98줄 def 필드 @fields end |
#이름 ⇒ string | nil (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
감지된 FaaS 환경의 이름을 반환하고, 유효한 FaaS 환경이 감지되지 않은 경우 nil을 반환합니다.
94 95 96 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 94줄 def 이름 @name end |
인스턴스 메서드 세부 정보
#Amazon Web Services? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
현재 환경이 유효한 Amazon Web Services Lambda 환경인지 쿼리합니다.
157 158 159 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 157줄 def Amazon Web Services? @name == 'aws.lambda' end |
#Azure? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
현재 환경이 유효한 Azure 환경인지 쿼리합니다.
166 167 168 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 166줄 def Azure? @name == 'azure.func' end |
#컨테이너 ⇒ 해시 | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
감지된 컨테이너 정보를 쿼리합니다.
131 132 133 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 131줄 def container 필드[: 컨테이너] end |
#faas? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
현재 환경이 유효한 FaaS 환경인지 쿼리합니다.
148 149 150 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 148줄 def faas? @name != nil end |
#GCP? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
현재 환경이 유효한 GCP 환경인지 쿼리합니다.
175 176 177 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 175줄 def gcp? @name == 'gcp.func' end |
#현재? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
환경 정보를 감지할 수 있는지 여부를 쿼리합니다.
140 141 142 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 140줄 def 현재? @name || 필드.어떤? end |
#to_h ⇒ 해시
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
감지된 환경 정보를 해시로 컴파일합니다.
191 192 193 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 191줄 def to_h 이름 ? 필드.merge(이름: 이름) : 필드 end |
#vercel? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
현재 환경이 유효한 Vercel 환경인지 쿼리합니다.
184 185 186 |
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 184줄 def vercel? @name == 'vercel' end |