Classificação: Mongo::Server::AppMetadata::Environment Private
- Herda:
-
Objeto
- Objeto
- Mongo::Server::AppMetadata::Environment
- Definido em:
- lib/mongo/ servidor/app_metadata/environment.rb
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Implementa a lógica da especificação do handshake para deduzir e relatar o ambiente atual no qual o programa está sendo executado.
Isso inclui verificações de ambiente FaaS, bem como verificações da presença de um container (Docker) e/ou orquestrador (Kubernetes).
Definido sob namespace
Classes: missingVariable, TooManyEnvironments, TypeMismatch, ValueTooLong
Colapsode resumo constante
- DOCKERENV_PATH =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
O nome e a localização do arquivo .dockerenv que sinalizará a presença do Docker.
'/.dockerenv'
- MAXIMUM_VALUE_LENGTH =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Este valor não é explicitamente especificado nas especificações, apenas implícito ser menor que 512.
500
- Discriminadores =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
O mapeamento que determina qual ambiente FaaS está ativo, com base em quais variáveis de ambiente estão presentes.
{ 'AWS_EXECUTION_ENV' => { padrão: /^AWS_Lambda_/, nome: 'aws.lambda' }, 'AWS_LAMBDA_RUNTIME_API' => { nome: 'aws.lambda' }, 'FUNCTIONS_WORKER_RUNTIME' => { nome: 'azure.func' }, 'K_SERVICE' => { nome: 'gcp.func' }, 'FUNCTION_NAME' => { nome: 'gcp.func' }, 'VERCEL' => { nome: 'vercel' }, }.congelar
- COERTION =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Descreve como forçar valores do tipo especificado.
{ string: ->(v) { String(v) }, inteiro: ->(v) { Inteiro(v) } }.congelar
- Campos =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Descreve quais campos são necessários para cada ambiente FaaS, juntamente com seus tipos esperados, e como devem ser nomeados no documento de handshake.
{ 'aws.lambda' => { 'AWS_REGION' => { campo: :region, tipo: : string }, 'AWS_LAMBDA_FUNCTION_MEMORY_SIZE' => { campo: :memory_mb, tipo: :integer }, }, 'azure.func' => {}, 'gcp.func' => { 'FUNCTION_MEMORY_MB' => { campo: :memory_mb, tipo: :integer }, 'FUNCTION_TIMEOUT_SEC' => { campo: :timeout_sec, tipo: :integer }, 'FUNCTION_REGION' => { campo: :region, tipo: : string }, }, 'vercel' => { 'VERCEL_REGION' => { campo: :region, tipo: : string }, }, }.congelar
Recolhimento do Resumo do atributo de instância
-
#erro ➤ string | nada
Somente leitura
privado
A mensagem de erro explicando por que um ambiente FaaS válido não foi detectado, ou nulo se nenhum erro ocorreu.
-
#campos ➤ Hash | nada
Somente leitura
privado
Os campos descrevendo o ambiente FaaS detectado.
-
#nome ➤ string | nada
Somente leitura
privado
O nome do ambiente FaaS que foi detectado ou nulo se nenhum ambiente FaaS válido foi detectado.
Recolhimento do Resumo do método de instância
-
#Amazon Web Services? ➤ verdadeiro | false
privado
Consulta se o ambiente atual é um ambiente válido do Amazon Web Services Lambda .
-
#Azure? ➤ verdadeiro | false
privado
Consulta se o ambiente atual é um ambiente Azure válido.
-
#container ➤ Hash | nada
privado
Consulta as informações do container detectado.
-
#faas? ➤ verdadeiro | false
privado
Consulta se o ambiente atual é um ambiente FaaS válido.
-
#GCP? ➤ verdadeiro | false
privado
Consulta se o ambiente atual é um ambiente GCP válido.
-
#inicializar ➤ Ambiente
construtor
privado
Crie um novo objeto AppMetadata::Environment , inicializando-o a partir das variáveis ENV atuais.
-
#presente? ➤ verdadeiro | false
privado
Consulta se alguma informação do ambiente pôde ser detectada.
-
#to_h ➤ Hash
privado
Compila as informações do ambiente detectadas em um Hash.
-
#vercel? ➤ verdadeiro | false
privado
Consulta se o ambiente atual é um ambiente Vercel válido.
Detalhes do construtor
#inicializar ➤ Ambiente
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Crie um novo objeto AppMetadata::Environment , inicializando-o a partir das variáveis ENV atuais. Se nenhum ambiente FaaS for detectado ou se o ambiente contiver um estado inválido ou contraditório, ele será inicializado com {name} definido como {nil}.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 111 def inicializar @fields = {} @erro = nada @name = detect_environment preenchimento_faas_fields detect_container salvar ToManyEnvironments => e auto.Erro = "muitos ambientes detectados: #{e.}" salvar missingVariable => e auto.Erro = "variável de ambiente ausente: #{e.}" salvar TypeMismatch => e auto.Erro = e. salvar ValueTooLong => e auto.Erro = "o valor para #{e.} é muito longo" end |
Detalhes do atributo da instância
#error ⇒ String | nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Essas mensagens de erro não devem ser propagadas ao usuário; eles destinam-se apenas à solução de problemas e depuração.)
Retorna a mensagem de erro explicando por que um ambiente FaaS válido não foi detectado, ou nulo se nenhum erro ocorrer.
105 106 107 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 105 def Erro @erro end |
#campos ➤ Hash | nil (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna os campos descrevendo o ambiente FaaS detectado.
98 99 100 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 98 def Campos @fields end |
#nome ➤ string | nil (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o nome do ambiente FaaS que foi detectado ou nulo se nenhum ambiente FaaS válido foi detectado.
94 95 96 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 94 def name @name end |
Detalhes do método de instância
#Amazon Web Services? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta se o ambiente atual é um ambiente válido do Amazon Web Services Lambda .
157 158 159 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 157 def Amazon Web Services? @name == 'aws.lambda' end |
#Azure? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta se o ambiente atual é um ambiente Azure válido.
166 167 168 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 166 def Azure? @name == 'azure.func' end |
#container ➤ Hash | nada
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta as informações do container detectado.
131 132 133 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 131 def container Campos[:container] end |
#faas? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta se o ambiente atual é um ambiente FaaS válido.
148 149 150 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 148 def faas? @name != nada end |
#GCP? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta se o ambiente atual é um ambiente GCP válido.
175 176 177 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 175 def gcp? @name == 'gcp.func' end |
#presente? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta se alguma informação do ambiente pôde ser detectada.
140 141 142 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 140 def presente? @name || Campos.algum? end |
#to_h ➤ Hash
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Compila as informações do ambiente detectadas em um Hash.
191 192 193 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 191 def to_h name ? Campos.mesclar(nome: name) : Campos end |
#vercel? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Consulta se o ambiente atual é um ambiente Vercel válido.
184 185 186 |
# Arquivo 'lib/mongo/ servidor/app_metadata/environment.rb', linha 184 def vercel? @name == 'vercel' end |