类:Mongo::Server::AppMetadata::Environment Private

继承:
对象
  • 对象
显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/server/app_metadata/environment.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

实现握手规范中的逻辑,用于推断和报告程序执行的当前 FaaS 环境。

由于:

  • 2.0.0

在命名空间下定义

类: MissingVariableTooManyEnvironmentsTypeMismatchValueTooLong

常量摘要折叠

MAXIMUM_VALUE_LENGTH =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

规范中未明确指定该值,仅暗示小于512 。

由于:

  • 2.0.0

500
鉴别器 =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

根据存在的环境变量确定哪个 FaaS 环境处于活动状态的映射。

由于:

  • 2.0.0

{
  ' AWS_EXECUTION_ENV ' => { 模式: / ^AWS_Lambda_ /, 名称: 'aws.lambda' },
  ' AWS_LAMBDA_RUNTIME_API ' => { 名称: 'aws.lambda' },
  ' FUNCTIONS_WORKER_RUNTIME ' => { 名称: 'azure.func' },
  ' K_SERVICE ' => { 名称: ' gcp.func ' },
  ' FUNCTION_NAME ' => { 名称: ' gcp.func ' },
  'VERCEL' => { 名称: 'vercel' },
}.冻结
COERCIONS =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

描述如何强制转换指定类型的值。

由于:

  • 2.0.0

{
  string : ->(v) { 字符串(v) },
  整数: ->(v) { 整型(v) }
}.冻结
字段 =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

描述每个 FaaS 环境需要哪些字段,以及它们的预期类型,以及它们在握手文档中的命名方式。

由于:

  • 2.0.0

{
  'aws.lambda' => {
    'AWS_REGION' => { 字段: :地区, 类型: : 细绳 },
    'AWS_LAMBDA_FUNCTION_MEMORY_SIZE' => { 字段: :memory_mb, 类型: :整数 },
  },

  'azure.func' => {},

  ' gcp.func ' => {
    ' FUNCTION_MEMORY_MB ' => { 字段: :memory_mb, 类型: :整数 },
    ' FUNCTION_TIMEOUT_SEC ' => { 字段: :timeout_sec, 类型: :整数 },
    ' FUNCTION_REGION ' => { 字段: :地区, 类型: : 细绳 },
  },

  'vercel' => {
    ' VERCEL_REGION ' => { 字段: :地区, 类型: : 细绳 },
  },
}.冻结

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#初始化环境

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

创建一个新的 AppMetadata::Environment对象,并使用当前的 ENV 变量对其进行初始化。 如果未检测到 FaaS 环境,或者环境包含无效或矛盾状态,则会使用设立为 {nil} 的 {name} 进行初始化。

由于:

  • 2.0.0



104
105
106
107
108
109
110
111
112
113
114
115
116
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第104行

def 初始化
  @error = nil
  @name = 检测环境
  populate_fields
救援 TooManyEnvironments => e
  self.错误 = "检测到太多环境: #{ e . message } "
救援 MissingVariable => e
  self.错误 = "缺少环境变量: #{ e . message } "
救援 TypeMismatch => e
  self.错误 = e.message
救援 ValueTooLong => e
  self.错误 = " #{ e . message } 值 太长 "
end

实例属性详细信息

#errorString | nil

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

注意:

这些错误消息不会传播给用户;它们仅用于故障排除和调试。)

返回错误消息,解释为何未检测到有效的 FaaS 环境;如果没有发生错误,则返回 nil。

返回:

  • ( string | nil )

    解释为何未检测到有效 FaaS 环境的错误消息;如果没有发生错误,则返回 nil。

由于:

  • 2.0.0



98
99
100
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第98行

def 错误
  @error
end

#个字段哈希 | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回描述检测到的 FaaS 环境的字段。

返回:

  • ( Hash | nil )

    描述检测到的 FaaS 环境的字段。

由于:

  • 2.0.0



91
92
93
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第91行

def 字段
  @fields
end

#名称string | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回检测到的 FaaS 环境的名称,如果未检测到有效的 FaaS 环境,则返回 nil。

返回:

  • ( string | nil )

    检测到的 FaaS 环境的名称,如果未检测到有效的 FaaS 环境,则为 nil。

由于:

  • 2.0.0



87
88
89
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第87行

def 名称
  @name
end

实例方法详细信息

# Amazon Web Services ?true | false

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

查询当前环境是否为有效的Amazon Web Services Lambda环境。

返回:

  • ( true | false )

    该环境是否为Amazon Web Services Lambda环境。

由于:

  • 2.0.0



131
132
133
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第131行

def Amazon Web Services ?
  @name == 'aws.lambda'
end

# Azure ?true | false

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

查询当前环境是否为有效的 Azure 环境。

返回:

  • ( true | false )

    环境是否为Azure环境。

由于:

  • 2.0.0



140
141
142
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第140行

def Azure ?
  @name == 'azure.func'
end

# faas?true | false

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

查询当前环境是否为有效的 FaaS 环境。

返回:

  • ( true | false )

    该环境是否为 FaaS 环境。

由于:

  • 2.0.0



122
123
124
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第122行

def faas?
  @name != nil
end

# GCP ?true | false

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

查询当前环境是否为有效的GCP环境。

返回:

  • ( true | false )

    该环境是否为 GCP 环境。

由于:

  • 2.0.0



149
150
151
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第149行

def gcp?
  @name == ' gcp.func '
end

# to_h哈希

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将检测到的环境信息编译为哈希。 它将始终包含一个 {name} 密钥,但也可能包含其他密钥,具体取决于检测到的 FaaS 环境。 (有关详细信息,请参阅握手规范。)

返回:

  • (哈希)

    检测到的环境信息。

由于:

  • 2.0.0



168
169
170
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第168行

def to_h
  字段.合并(merge)(名称: 名称)
end

# vercel?true | false

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

查询当前环境是否为有效的 Vercel 环境。

返回:

  • ( true | false )

    该环境是否为 Vercel 环境。

由于:

  • 2.0.0



158
159
160
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb', 第158行

def vercel?
  @name == 'vercel'
end