Classificação: Mongo::Server::AppMetadata::Environment Private

Herda:
Objeto
  • Objeto
mostrar tudo
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.

Desde:

  • 2.0.0

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.

Desde:

  • 2.0.0

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.

Desde:

  • 2.0.0

{
  '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.

Desde:

  • 2.0.0

{
  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.

Desde:

  • 2.0.0

{
  '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

Recolhimento do Resumo do método de instância

Detalhes do construtor

#inicializarAmbiente

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}.

Desde:

  • 2.0.0



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.message}"
salvar missingVariable => e
  auto.Erro = "variável de ambiente ausente: #{e.message}"
salvar TypeMismatch => e
  auto.Erro = e.mensagem
salvar ValueTooLong => e
  auto.Erro = "o valor para #{e.message} é muito longo"
end

Detalhes do atributo da instância

#errorString | 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.

Observação:

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.

Retorna:

  • (string | nil)

    a mensagem de erro explicando por que um ambiente FaaS válido não foi detectado ou nulo se nenhum erro ocorrer.

Desde:

  • 2.0.0



98
99
100
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 98

def Erro
  @erro
end

#camposHash | 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.

Retorna:

  • (Hash | nulo)

    os campos que descrevem o ambiente FaaS detectado.

Desde:

  • 2.0.0



91
92
93
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 91

def Campos
  @fields
end

#nomestring | 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.

Retorna:

  • (string | nil)

    o nome do ambiente FaaS que foi detectado ou nulo se nenhum ambiente FaaS válido foi detectado.

Desde:

  • 2.0.0



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 .

Retorna:

  • (verdadeiro | falso)

    se o ambiente é um ambiente Amazon Web Services Lambda ou não.

Desde:

  • 2.0.0



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.

Retorna:

  • (verdadeiro | falso)

    se o ambiente é um ambiente Azure ou não.

Desde:

  • 2.0.0



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.

Retorna:

  • (verdadeiro | falso)

    se o ambiente é um ambiente FaaS ou não.

Desde:

  • 2.0.0



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.

Retorna:

  • (verdadeiro | falso)

    se o ambiente é um ambiente GCP ou não.

Desde:

  • 2.0.0



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.)

Retorna:

  • (Hash)

    as informações do ambiente detectadas.

Desde:

  • 2.0.0



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.

Retorna:

  • (verdadeiro | falso)

    se o ambiente é um ambiente Vercel ou não.

Desde:

  • 2.0.0



158
159
160
# File 'build/ruby-driver-v2.19/lib/mongo/ servidor/app_metadata/environment.rb', linha 158

def vercel?
  @name == 'vercel'
end