Clase: Mongo::Server::AppMetadata::Environment Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Server::AppMetadata::Environment
- Definido en:
- lib/mongo/server/app_metadata/environment.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Implementa la lógica desde la especificación de apretón de manos, para deducir y reportar el entorno actual en el que el programa se está ejecutando.
Esto incluye comprobaciones del entorno FaaS, así como comprobaciones de la presencia de un contenedor (Docker) y/o orquestador (Kubernetes).
Definido bajo Namespace
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 .dockerenv archivo que marcará la presencia de Docker.
'/.dockerenv'- MAXIMUM_VALUE_LENGTH =
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.
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.
El mapeo que determina cuál entorno FaaS está activo, según las variables de entorno presentes.
{ 'AWS_EXECUTION_ENV' => { patrón: /^AWS_Lambda_/, nombre: 'aws.lambda' }, 'AWS_LAMBDA_RUNTIME_API' => { nombre: 'aws.lambda' }, 'FUNCTIONS_WORKER_RUNTIME' => { nombre: 'azure.func' }, 'K_SERVICE' => { 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 forzar valores del tipo especificado.
{ string: ->(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.
{ '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
Resumen de atributos de la instancia colapsar
-
#error ⇒ String | nil
Solo lectura
privado
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.
-
#campos ⇒ Hash | nil
Solo lectura
privado
Los campos que describen el entorno FaaS detectado.
-
#nombre ⇒ Cadena | nulo
Solo lectura
privado
El nombre del entorno FaaS que se detectó, o nil si no se detectó ningún entorno FaaS válido.
Resumen del método de instancia colapsar
-
#aws? ⇒ true | false
privado
Consulta si el entorno actual es un entorno de AWS Lambda válido.
-
#azure? ⇒ verdadero | falso
privado
Consulta si el entorno actual es un entorno de Azure válido.
-
#contenedor ⇒ Hash | nulo
privado
Consulta la información del contenedor detectado.
-
#faas? ⇒ true | false
privado
Consulta si el entorno actual es un entorno FaaS válido.
-
#gcp? ⇒ verdadero | falso
privado
Consulta si el entorno actual es un entorno válido de GCP.
-
#initializar ⇒ Environment
constructor
privado
Crea un nuevo objeto AppMetadata::Environment, inicializándolo a partir de las variables de entorno ENV actuales.
-
#¿presente? ⇒ verdadero | falso
privado
Consulta si se pudo detectar alguna información del entorno.
-
#to_h ⇒ Hash
privado
Compila la información del entorno detectada en un Hash.
-
#vercel? ⇒ true | false
privado
Consulta si el entorno actual es un entorno válido de Vercel.
Detalles del constructor
#inicializar ⇒ Environment
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}.
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 populate_faas_fields detectar_contenedor rescate DemasiadosEntornos => e sí mismo.Error = "Sedetectaron demasiados entornos: #{e. }" rescate Variable faltante => e sí mismo.Error = "Variable de entorno faltante: #{e.}" rescate TypeMismatch => e sí mismo.Error = e. rescate ValueTooLong => e sí mismo.Error = "valor para #{e.} es demasiado largo" end |
Detalles de los atributos de instancia
#error ⇒ String | 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.
Estos mensajes de error no deben propagarse al usuario; faltan acentos; están destinados solo para 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.
105 106 107 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 105 def Error @error end |
#campos ⇒ Hash | 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 los campos que describen el entorno FaaS detectado.
98 99 100 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 98 def campos @campos end |
#nombre ⇒ String | 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.
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.
157 158 159 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 157 def Amazon Web Services? @name == 'aws.lambda' end |
#azure? ⇒ 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 de Azure válido.
166 167 168 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 166 def azure? @name == 'azure.func' end |
#contenedor ⇒ Hash | 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.
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.
148 149 150 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 148 def faas? @name != nulo end |
#gcp? ⇒ 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 válido de GCP.
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.
140 141 142 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 140 def ¿presente? @name || campos.any? end |
#to_h ⇒ Hash
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 detectada en un Hash.
191 192 193 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 191 def to_h Nombre ? campos.fusionar(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 válido de Vercel.
184 185 186 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 184 def vercel? @name == 'vercel' end |