类:Mongo::Server::AppMetadata::Environment Private
- 继承:
-
对象
- 对象
- Mongo::Server::AppMetadata::Environment
- 定义于:
- lib/ Mongo/ 服务器/app_metadata/environment.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
实现握手规范中的逻辑,用于推断和报告程序执行的当前环境。
这包括 FaaS 环境检查,以及容器(Docker) 和/或协调器 (Kubernetes) 是否存在的检查。
在命名空间下定义
类: MissingVariable 、 TooManyEnvironments 、 TypeMismatch 、 ValueTooLong
常量摘要折叠
- DOCKERENV_PATH =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
.dockerenv 的名称和位置 文件,该文件将表明Docker的存在。
'/.dockerenv'
- MAXIMUM_VALUE_LENGTH =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
规范中未明确指定该值,仅暗示小于512 。
500
- 鉴别器 =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
根据存在的环境变量确定哪个 FaaS 环境处于活动状态的映射。
{ ' 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 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
描述如何强制转换指定类型的值。
{ string : ->(v) { 字符串(v) }, 整数: ->(v) { 整型(v) } }.冻结
- 字段 =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
描述每个 FaaS 环境需要哪些字段,以及它们的预期类型,以及它们在握手文档中的命名方式。
{ '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 ' => { 字段: :地区, 类型: : 细绳 }, }, }.冻结
实例属性摘要折叠
-
# error ⇒ string | nil
只读
private
错误消息解释了为什么未检测到有效的 FaaS 环境,如果没有发生错误,则返回 nil。
-
#个字段⇒ 哈希 | nil
只读
private
描述检测到的 FaaS 环境的字段。
-
#名称⇒ string | nil
只读
private
检测到的 FaaS 环境的名称,如果未检测到有效的 FaaS 环境,则为 nil。
实例方法摘要折叠
-
# Amazon Web Services ? ⇒ true | false
private
查询当前环境是否为有效的Amazon Web Services Lambda环境。
-
# Azure ? ⇒ true | false
private
查询当前环境是否为有效的 Azure 环境。
-
#容器⇒ 哈希 | nil
private
查询检测到的容器信息。
-
# faas? ⇒ true | false
private
查询当前环境是否为有效的 FaaS 环境。
-
# GCP ? ⇒ true | false
private
查询当前环境是否为有效的GCP环境。
-
#初始化⇒ 环境
构造函数
private
创建一个新的 AppMetadata::Environment对象,并使用当前的 ENV 变量对其进行初始化。
-
# 现在?⇒ true | false
private
查询是否能够检测到任何环境信息。
-
# to_h ⇒ 哈希
private
将检测到的环境信息编译为哈希。
-
# vercel? ⇒ true | false
private
查询当前环境是否为有效的 Vercel 环境。
构造函数详情
#初始化⇒环境
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
创建一个新的 AppMetadata::Environment对象,并使用当前的 ENV 变量对其进行初始化。 如果未检测到 FaaS 环境,或者环境包含无效或矛盾状态,则会使用设立为 {nil} 的 {name} 进行初始化。
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 111 def 初始化 @fields = {} @error = nil @name = 检测环境 populate_faas_fields 检测容器 救援 TooManyEnvironments => e self.错误 = "检测到太多环境: #{ e . } " 救援 MissingVariable => e self.错误 = "缺少环境变量: #{ e . } " 救援 TypeMismatch => e self.错误 = e. 救援 ValueTooLong => e self.错误 = " #{ e . } 的 值 太长 " end |
实例属性详细信息
#error ⇒ String | nil
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
这些错误消息不会传播给用户;它们仅用于故障排除和调试。)
返回错误消息,解释为何未检测到有效的 FaaS 环境;如果没有发生错误,则返回 nil。
105 106 107 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 105 def 错误 @error end |
#个字段⇒哈希 | nil (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回描述检测到的 FaaS 环境的字段。
98 99 100 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 98 def 字段 @fields end |
#名称⇒ string | nil (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回检测到的 FaaS 环境的名称,如果未检测到有效的 FaaS 环境,则返回 nil。
94 95 96 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 94 def 名称 @name end |
实例方法详细信息
# Amazon Web Services ? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询当前环境是否为有效的Amazon Web Services Lambda环境。
157 158 159 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 157 def Amazon Web Services ? @name == 'aws.lambda' end |
# Azure ? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询当前环境是否为有效的 Azure 环境。
166 167 168 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 166 def Azure ? @name == 'azure.func' end |
#容器⇒ 哈希 | nil
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询检测到的容器信息。
131 132 133 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 131 def container 字段[:容器] end |
# faas? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询当前环境是否为有效的 FaaS 环境。
148 149 150 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 148 def faas? @name != nil end |
# GCP ? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询当前环境是否为有效的GCP环境。
175 176 177 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 175 def gcp? @name == ' gcp.func ' end |
# 现在?⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询是否能够检测到任何环境信息。
140 141 142 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 140 def 现在? @name || 字段.任何? end |
# to_h ⇒哈希
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将检测到的环境信息编译为哈希。
191 192 193 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 191 def to_h 名称 ? 字段.合并(merge)(名称: 名称) : 字段 end |
# vercel? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
查询当前环境是否为有效的 Vercel 环境。
184 185 186 |
# File 'lib/ Mongo/ 服务器/app_metadata/environment.rb', line 184 def vercel? @name == 'vercel' end |