Classificação: Mongo::Server::AppMetadata::Environment Private
- Herda:
-
Objeto
- Objeto
- Mongo::Server::AppMetadata::Environment
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/server/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 FaaS atual no qual o programa está sendo executado.
Definido sob namespace
Classes: missingVariable, TooManyEnvironments, TypeMismatch, ValueTooLong
Colapsode resumo constante
- 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.
-
#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.
-
#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}.
104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 104 def inicializar @erro = nada @name = detect_environment preencher_campos 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.
98 99 100 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 98 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.
91 92 93 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 91 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.
87 88 89 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 87 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 .
131 132 133 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 131 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.
140 141 142 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 140 def Azure? @name == 'azure.func' 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.
122 123 124 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 122 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.
149 150 151 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 149 def gcp? @name == 'gcp.func' 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. Ele sempre incluirá uma chave {name}, mas também poderá incluir outras chaves, dependendo do ambiente FaaS detectado. (Consulte a especificação do handshake para obter detalhes.)
168 169 170 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 168 def to_h Campos.mesclar(nome: name) 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.
158 159 160 |
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 158 def vercel? @name == 'vercel' end |