クラス: Mongo::Server::AppMetadata::Environment Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Server::AppMetadata::Environment
- 定義:
- lib/mongo/ サーバー/app_metadata/environment.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
プログラムが実行されている現在の環境を削減して報告するために、ハンドシェイク仕様からロジックを実装します。
これには、FaaS 環境のチェックだけでなく、コンテナ(Docker)やオーケストレータ(Kubernetes)の存在のチェックも含まれます。
名前空間で定義済み
クラス: 欠落変数、 ToolsTooManyEnvironments 、 TypeMismatch 、 ValueTooLong
定数の概要の削減
- DOCRONV_PATH =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
.dockerenv の名前と場所 ファイル。これはDockerの存在をシグナルします。
'/.dockerenv'
- MAX_VALUE_LENGTH =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
この値は 仕様では明示的に指定されておらず、 512より小さいことが暗黙的に指定されているだけです。
500
- 弁別子 =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
どの環境変数が存在するかに基づいて、どの FaaS 環境がアクティブであるかを決定するマッピング。
{ 'AWS_EXECUTION_ENV' => { パターン: / ^AWS_Lambda_ /, name: 'aws.lambda' }, 'AWS_LAMBDA_RUNTIME_API' => { name: 'aws.lambda' }, ' FUNCTIONS_WORKER_RUNTIME ' => { name: 'azure.func' }, 「 K_SERVICE 」 => { name: 'gcp.func' }, 'FUNCTION_NAME' => { name: 'gcp.func' }, 'VERCEL' => { name: 'vercel' }, }.freeze
- COERCIONS =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定された型の値を強制する方法を説明します。
{ string: ->(v) { 文字列(v) }, 整数: ->(v) { 整数(v) } }.freeze
- FIELDS =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
各 FaaS 環境に必要なフィールドと、そのフィールドに予想されるタイプ、およびハンドシェイク ドキュメントでのフィールドの名前付け方法について説明します。
{ 'aws.lambda' => { 'AWS_REGION' => { フィールド: :region, type: :string }, 'AWS_LAMBDA_FUNCTION_MEMORY_SIZE' => { フィールド: :memory_mb, type: : 整数 }, }, 'azure.func' => {}, 'gcp.func' => { 'FUNCTION_MEMORY_MB' => { フィールド: :memory_mb, type: : 整数 }, 'FUNCTION_TIMEOUT_SEC' => { フィールド: :timeout_second, type: : 整数 }, 'FUNCTION_REGION' => { フィールド: :region, type: :string }, }, 'vercel' => { 'VERCEL_REGION' => { フィールド: :region, type: :string }, }, }.freeze
インスタンス属性の概要を折りたたむ
-
#error ⇒ String | nil
readOnly
private
有効な FaaS 環境が検出されなかった場合、 またはエラーが発生しなかった場合は nil のエラーメッセージが表示されます。
-
フィールド= ハッシュ | nil
readOnly
private
検出された FaaS 環境を説明するフィールド。
-
# name = string | nil
readOnly
private
検出された FaaS 環境の名前、または有効な FaaS 環境が検出されなかった場合は nil 。
インスタンス メソッドの概要を折りたたむ
-
# Amazon Web Services = true | false
private
現在の環境が有効なAmazon Web Services Lambda環境であるかどうかをクエリします。
-
はAzureますか。 = true | false
private
現在の環境が有効な Azure 環境であるかどうかをクエリします。
-
#コンテナ= ハッシュ | nil
private
検出コンテナ情報をクエリします。
-
#FAS = true | false
private
現在の環境が有効な FaaS 環境であるかどうかをクエリします。
-
GCP = true | false
private
現在の環境が有効な GCP 環境であるかどうかをクエリします。
-
#初期化~ 環境
コンストラクター
private
新しい AppMetadata::Environment オブジェクトを作成し、現在の Env 変数から初期化します。
-
存在する場合= true | false
private
環境情報を検出できたかどうかをクエリします。
-
# to_h =ハッシュ
private
検出された環境情報をハッシュにコンパイルします。
-
番号: = true | false
private
現在の環境が有効な Vercel 環境であるかどうかをクエリします。
コンストラクターの詳細
#初期化~環境
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
新しい AppMetadata::Environment オブジェクトを作成し、現在の Env 変数から初期化します。 FaaS 環境が検出されない場合、または環境に無効または競合する状態が含まれている場合は、{{name} を {nil} に設定して初期化されます。
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 111 デフォルト 初期化 @fields = {} @error = nil @name = trigger_environment empty_FAas_fields protect_container ヘルプ ToolsManyEnvironments => e 自己.エラー = 「多すぎる環境が検出されました: #{ e .} " ヘルプ 欠落変数 => e 自己.エラー = "欠落している環境変数: #{ e .} " ヘルプ TypeMismatch => e 自己.エラー = e. ヘルプ ValueTooLong => e 自己.エラー = " #{ e } の " 値 が長すぎ ます " end |
インスタンス属性の詳細
#error ⇒ String | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
これらのエラー メッセージはユーザーに伝達されません。トラブルシューティングとデバッグのみを目的としたものです)。
有効な FaaS 環境が検出されなかった理由を説明するエラーメッセージを返します。エラーが発生していない場合は nil を返します。
105 106 107 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 105 デフォルト エラー @error end |
フィールド=ハッシュ | nil (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
検出された FaaS 環境を説明するフィールドを返します。
98 99 100 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 98 デフォルト フィールド @fields end |
# name = string | nil (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
検出された FaaS 環境の名前を返します。有効な FaaS 環境が検出されなかった場合は nil を返します。
94 95 96 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 94 デフォルト name @name end |
インスタンス メソッドの詳細
# Amazon Web Services = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在の環境が有効なAmazon Web Services Lambda環境であるかどうかをクエリします。
157 158 159 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 157 デフォルト Amazon Web Servicesは表示されません。 @name == 'aws.lambda' end |
はAzureますか。 = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在の環境が有効な Azure 環境であるかどうかをクエリします。
166 167 168 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 166 デフォルト azure? @name == 'azure.func' end |
#コンテナ= ハッシュ | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
検出コンテナ情報をクエリします。
131 132 133 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 131 デフォルト コンテナ フィールド[:コンテナ] end |
#FAS = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在の環境が有効な FaaS 環境であるかどうかをクエリします。
148 149 150 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 148 デフォルト faas? @name != nil end |
GCP = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在の環境が有効な GCP 環境であるかどうかをクエリします。
175 176 177 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 175 デフォルト gcp? @name == 'gcp.func' end |
存在する場合= true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
環境情報を検出できたかどうかをクエリします。
140 141 142 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 140 デフォルト 存在するかどうか @name || フィールド.any? end |
# to_h =ハッシュ
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
検出された環境情報をハッシュにコンパイルします。
191 192 193 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 191 デフォルト to_h name ? フィールド.merge(name: name) : フィールド end |
番号: = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在の環境が有効な Vercel 環境であるかどうかをクエリします。
184 185 186 |
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 184 デフォルト vercel? @name == 'vercel' end |