Clase: Mongo::Server::AppMetadata::Environment Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Servidor::Metadatos de la aplicación::Entorno
- 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).
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.
'/.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.
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.
{ '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.
{ 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.
{ '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
-
#error ⇒ String | nil
solo lectura
privada
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 | nulo
solo lectura
privada
Los campos que describen el entorno FaaS detectado.
-
#nombre ⇒ Cadena | nulo
solo lectura
privada
El nombre del entorno FaaS que se detectó, o nulo si no se detectó ningún entorno FaaS válido.
Colapso del resumen del método de instancia
-
#aws? ⇒ verdadero | falso
privada
Consulta si el entorno actual es un entorno de AWS Lambda válido.
-
#azure? ⇒ verdadero | falso
privada
Consulta si el entorno actual es un entorno de Azure válido.
-
#contenedor ⇒ Hash | nulo
privada
Consulta la información del contenedor detectado.
-
#faas? ⇒ verdadero | falso
privada
Consulta si el entorno actual es un entorno FaaS válido.
-
#gcp? ⇒ verdadero | falso
privada
Consulta si el entorno actual es un entorno de GCP válido.
-
#inicializar ⇒ Entorno
constructor
privada
Crea un nuevo objeto AppMetadata::Environment, inicializándolo a partir de las variables ENV actuales.
-
#¿presente? ⇒ verdadero | falso
privada
Consulta si se pudo detectar alguna información del entorno.
-
#to_h ⇒ Hash
privada
Compila la información del entorno detectado en un hash.
-
#vercel? ⇒ verdadero | falso
privada
Consulta si el entorno actual es un entorno Vercel válido.
Detalles del constructor
#inicializar ⇒ Entorno
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 rellenar campos faas detectar_contenedor rescate Demasiados entornos => e yo.Error = "Sedetectaron demasiados entornos: #{e. }" rescate Variable faltante => e yo.Error = "variablede entorno faltante: #{e.}" rescate TypeMismatch => e yo.Error = e. rescate ValueTooLong => e yo.Error = "Elvalor para #{e.} es demasiadolargo" 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; 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.
105 106 107 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 105 def Error @error end |
#campos ⇒ Hash | 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.
98 99 100 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 98 def campos @campos end |
#nombre ⇒ Cadena | 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 ¿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.
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? ⇒ 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.
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 detectado en un hash.
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.
184 185 186 |
# Archivo 'lib/mongo/server/app_metadata/environment.rb', línea 184 def vercel? @name == 'vercel' end |