클래스: Mongo::Server::AppMetadata::Environment Private

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
lib/ Mongo/ 서버/app_metadata/environment.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

프로그램이 실행 중인 현재 환경을 추론하고 보고 위해 핸드셰이크 사양의 로직을 구현합니다.

여기에는 FaaS 환경 검사와 컨테이너 (Docker) 및/또는 오케스트레이터(Kubernetes)의 존재 여부 확인이 포함됩니다.

이후:

  • 2.0.0

네임스페이스 아래에 정의됨

클래스: MissingVariable, TooManyEnvironments, TypeMismatch, ValueTooLong

상수 요약 접기

DOCKERENV_PATH =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

.dockerenv 파일의 이름과 위치 Docker 의 존재를 알리는 파일 입니다.

이후:

  • 2.0.0

'/.dockerenv'
MAXIMUM_밸류_LENGTH =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 값은 사양에 명시적으로 지정되지 않았으며 512 보다 작은 것으로 암시될 뿐입니다.

이후:

  • 2.0.0

500
판별자 =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

존재하는 환경 변수에 따라 활성화된 FaaS 환경을 결정하는 매핑입니다.

이후:

  • 2.0.0

{
  '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의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

지정된 유형의 값을 강제로 적용하는 방법을 설명합니다.

이후:

  • 2.0.0

{
  string: ->(v) { 문자열(v) },
  정수: ->(v) { Integer(v) }
}.동결
FIELDS =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

각 FaaS 환경에 필요한 필드와 예상 유형, 핸드셰이크 문서 에서 이름을 지정하는 방법을 설명합니다.

이후:

  • 2.0.0

{
  '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' => { 필드: : 리전, 유형: : 문자열 },
  },
}.동결

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize환경

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 AppMetadata::Environment 객체 를 만들고 현재 ENV 변수에서 초기화합니다. FaaS 환경이 감지되지 않거나 환경에 유효하지 않거나 상충되는 상태 가 포함된 경우 {nil}로 설정하다 {name}로 초기화됩니다.

이후:

  • 2.0.0



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.message}"
구출 MissingVariable => e
  self.오류 = "누락된 환경 변수: #{e.message}"
구출 TypeMismatch => e
  self.오류 = e.메시지
구출 ValueTooLong => e
  self.오류 = "#{e.message} 이 너무 깁니다"
end

인스턴스 속성 세부 정보

#errorString | nil

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

참고:

이러한 오류 메시지는 사용자에게 전파되어서는 안 됩니다. 문제 해결 및 디버깅에만 사용됩니다.)

유효한 FaaS 환경이 감지되지 않은 이유를 설명하는 오류 메시지를 반환하고, 오류가 발생하지 않은 경우 nil을 반환합니다.

반환합니다:

  • (string | nil)

    유효한 FaaS 환경이 감지되지 않은 이유를 설명하는 오류 메시지이며, 오류가 발생하지 않은 경우 nil입니다.

이후:

  • 2.0.0



105
106
107
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 105줄

def 오류
  @error
end

필드 #개 ⇒ 해시 | nil (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

감지된 FaaS 환경을 설명하는 필드를 반환합니다.

반환합니다:

  • (Hash | nil)

    감지된 FaaS 환경을 설명하는 필드입니다.

이후:

  • 2.0.0



98
99
100
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 98줄

def 필드
  @fields
end

#이름string | nil (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

감지된 FaaS 환경의 이름을 반환하고, 유효한 FaaS 환경이 감지되지 않은 경우 nil을 반환합니다.

반환합니다:

  • (string | nil)

    감지된 FaaS 환경의 이름이고, 유효한 FaaS 환경이 감지되지 않은 경우 nil입니다.

이후:

  • 2.0.0



94
95
96
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 94줄

def 이름
  @name
end

인스턴스 메서드 세부 정보

#Amazon Web Services?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

현재 환경이 유효한 Amazon Web Services Lambda 환경인지 쿼리합니다.

반환합니다:

  • (true | false)

    환경이 Amazon Web Services Lambda 환경인지 여부.

이후:

  • 2.0.0



157
158
159
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 157줄

def Amazon Web Services?
  @name == 'aws.lambda'
end

#Azure?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

현재 환경이 유효한 Azure 환경인지 쿼리합니다.

반환합니다:

  • (true | false)

    환경이 Azure 환경인지 여부.

이후:

  • 2.0.0



166
167
168
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 166줄

def Azure?
  @name == 'azure.func'
end

#컨테이너해시 | nil

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

감지된 컨테이너 정보를 쿼리합니다.

반환합니다:

  • (Hash | nil)

    감지된 컨테이너 정보 또는 컨테이너 감지되지 않은 경우 nil입니다.

이후:

  • 2.0.0



131
132
133
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 131줄

def container
  필드[: 컨테이너]
end

#faas?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

현재 환경이 유효한 FaaS 환경인지 쿼리합니다.

반환합니다:

  • (true | false)

    환경이 FaaS 환경인지 여부에 관계없이

이후:

  • 2.0.0



148
149
150
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 148줄

def faas?
  @name != nil
end

#GCP?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

현재 환경이 유효한 GCP 환경인지 쿼리합니다.

반환합니다:

  • (true | false)

    환경이 GCP 환경인지 여부.

이후:

  • 2.0.0



175
176
177
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 175줄

def gcp?
  @name == 'gcp.func'
end

#현재?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

환경 정보를 감지할 수 있는지 여부를 쿼리합니다.

반환합니다:

  • (true | false)

    환경 정보가 감지된 경우.

이후:

  • 2.0.0



140
141
142
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 140줄

def 현재?
  @name || 필드.어떤?
end

#to_h해시

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

감지된 환경 정보를 해시로 컴파일합니다.

반환합니다:

  • (해시)

    감지된 환경 정보.

이후:

  • 2.0.0



191
192
193
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 191줄

def to_h
  이름 ? 필드.merge(이름: 이름) : 필드
end

#vercel?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

현재 환경이 유효한 Vercel 환경인지 쿼리합니다.

반환합니다:

  • (true | false)

    환경이 Vercel 환경인지 여부.

이후:

  • 2.0.0



184
185
186
# 파일 'lib/ Mongo/ 서버/app_metadata/environment.rb', 184줄

def vercel?
  @name == 'vercel'
end