Clase: Mongo::Server::AppMetadata::Environment Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/server/app_metadata/environment.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Implementa la lógica de la especificación del protocolo de enlace, para deducir e informar el entorno actual en el que se está ejecutando el programa.

Esto incluye comprobaciones del entorno FaaS, así como comprobaciones de la presencia de un contenedor (Docker) y/o un orquestador (Kubernetes).

Desde:

  • 2.0.0

Definido en el espacio de nombres

Clases: Variable faltante, Demasiados entornos, Tipo no coincidente, Valor demasiado largo

Colapso delresumen constante

RUTA_DOCKERENV =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El nombre y la ubicación del archivo .dockerenv que señalará la presencia de Docker.

Desde:

  • 2.0.0

'/.dockerenv'
LONGITUD_MÁXIMA_DEL_VALOR =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Este valor no se especifica explícitamente en la especificación, solo se implica que es menor que 512.

Desde:

  • 2.0.0

500
DISCRIMINATORS =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

La asignación que determina qué entorno FaaS está activo, en función de qué variables de entorno están presentes.

Desde:

  • 2.0.0

{
  'AWS_EXECUTION_ENV' => { patrón: /^AWS_Lambda_/, nombre: 'aws.lambda' },
  'AWS_LAMBDA_RUNTIME_API' => { nombre: 'aws.lambda' },
  'FUNCIONES_TRABAJADOR_TIEMPO_DE_EJECUCIÓN ' => { nombre: 'azure.func' },
  'K_SERVICIO ' => { nombre: 'gcp.func' },
  'FUNCTION_NAME' => { nombre: 'gcp.func' },
  'VERCEL' => { nombre: 'vercel' },
}.freeze
COERCIONS =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Describe cómo convertir valores del tipo especificado.

Desde:

  • 2.0.0

{
  cadena: ->(v) { String(v) },
  entero: ->(v) { entero(v) }
}.freeze
CAMPOS =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Describe qué campos son necesarios para cada entorno FaaS, junto con sus tipos esperados y cómo deben nombrarse en el documento de protocolo de enlace.

Desde:

  • 2.0.0

{
  'aws.lambda' => {
    'AWS_REGION' => { campo: :región, tipo: :cadena },
    'AWS_LAMBDA_FUNCTION_MEMORY_SIZE' => { campo: :memory_mb, tipo: :entero },
  },

  'azure.func' => {},

  'gcp.func' => {
    'FUNCTION_MEMORY_MB' => { campo: :memory_mb, tipo: :entero },
    'FUNCTION_TIMEOUT_SEC' => { campo: :tiempo de espera_seg, tipo: :entero },
    'FUNCTION_REGION' => { campo: :región, tipo: :cadena },
  },

  'vercel' => {
    'VERCEL_REGION' => { campo: :región, tipo: :cadena },
  },
}.freeze

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializarEntorno

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo objeto AppMetadata::Environment, inicializándolo a partir de las variables ENV actuales. Si no se detecta un entorno FaaS, o si el entorno contiene un estado inválido o contradictorio, se inicializará con {name} establecido en {nil}.

Desde:

  • 2.0.0



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 111

def inicializar
  @campos = {}
  @error = nulo
  @name = detectar_entorno
  rellenar campos faas
  detectar_contenedor
rescate Demasiados entornos => e
  yo.Error = "Sedetectaron demasiados entornos: #{e. message}"
rescate Variable faltante => e
  yo.Error = "variablede entorno faltante: #{e.message}"
rescate TypeMismatch => e
  yo.Error = e.Mensaje
rescate ValueTooLong => e
  yo.Error = "Elvalor para #{e.message} es demasiadolargo"
end

Detalles de los atributos de instancia

#errorString | nil

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Estos mensajes de error no deben propagarse al usuario; están destinados únicamente a la resolución de problemas y la depuración.)

Devuelve el mensaje de error que explica porque no se detectó un entorno FaaS válido o nil si no se produjo ningún error.

Devuelve:

  • ( Cadena| nulo ) —

    el mensaje de error que explica por qué no se detectó un entorno FaaS válido, o nulo si no se produjo ningún error.

Desde:

  • 2.0.0



105
106
107
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 105

def Error
  @error
end

#camposHash | nulo (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve los campos que describen el entorno FaaS detectado.

Devuelve:

  • (Hash | nulo ) —

    los campos que describen el entorno FaaS detectado.

Desde:

  • 2.0.0



98
99
100
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 98

def campos
  @campos
end

#nombreCadena | nil (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el nombre del entorno FaaS que se detectó o nulo si no se detectó ningún entorno FaaS válido.

Devuelve:

  • ( Cadena| nulo ) —

    el nombre del entorno FaaS que se detectó, o nulo si no se detectó ningún entorno FaaS válido.

Desde:

  • 2.0.0



94
95
96
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 94

def Nombre
  @name
end

Detalles del método de instancia

#aws?verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta si el entorno actual es un entorno de AWS Lambda válido.

Devuelve:

  • (verdadero | falso)

    si el entorno es un entorno AWS Lambda o no.

Desde:

  • 2.0.0



157
158
159
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 157

def ¿Qué?
  @name == 'aws.lambda'
end

#azul?verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta si el entorno actual es un entorno de Azure válido.

Devuelve:

  • (verdadero | falso)

    si el entorno es un entorno de Azure o no.

Desde:

  • 2.0.0



166
167
168
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 166

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

#contenedorHash | nil

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta la información del contenedor detectado.

Devuelve:

  • (Hash | nulo ) —

    la información del contenedor detectado, o nula si no se detectó ningún contenedor.

Desde:

  • 2.0.0



131
132
133
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 131

def contenedor
  campos[:contenedor]
end

#faas?verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta si el entorno actual es un entorno FaaS válido.

Devuelve:

  • (verdadero | falso)

    si el entorno es un entorno FaaS o no.

Desde:

  • 2.0.0



148
149
150
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 148

def faas?
  @name != nulo
end

#gcp?verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta si el entorno actual es un entorno de GCP válido.

Devuelve:

  • (verdadero | falso)

    si el entorno es un entorno GCP o no.

Desde:

  • 2.0.0



175
176
177
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 175

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

#¿presente?verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta si se pudo detectar alguna información del entorno.

Devuelve:

  • (verdadero | falso)

    Si se detectó alguna información del entorno.

Desde:

  • 2.0.0



140
141
142
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 140

def ¿presente?
  @name || campos.any?
end

#to_hHash

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Compila la información del entorno detectado en un hash.

Devuelve:

  • (Hash)

    La información del entorno detectado.

Desde:

  • 2.0.0



191
192
193
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 191

def a_h
  Nombre ? campos.unir(nombre: Nombre) : campos
end

#vercel?true | false

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Consulta si el entorno actual es un entorno Vercel válido.

Devuelve:

  • (verdadero | falso)

    si el entorno es un entorno Vercel o no.

Desde:

  • 2.0.0



184
185
186
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 184

def vercel?
  @name == 'vercel'
end