クラス: Mongo::Server::AppMetadata::Environment Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongo/ サーバー/app_metadata/environment.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

プログラムが実行されている現在の環境を削減して報告するために、ハンドシェイク仕様からロジックを実装します。

これには、FaaS 環境のチェックだけでなく、コンテナ(Docker)やオーケストレータ(Kubernetes)の存在のチェックも含まれます。

以来

  • 2.0.0

名前空間で定義済み

クラス: 欠落変数ToolsTooManyEnvironmentsTypeMismatchValueTooLong

定数の概要の削減

DOCRONV_PATH =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

.dockerenv の名前と場所 ファイル。これはDockerの存在をシグナルします。

以来

  • 2.0.0

'/.dockerenv'
MAX_VALUE_LENGTH =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

この値は 仕様では明示的に指定されておらず、 512より小さいことが暗黙的に指定されているだけです。

以来

  • 2.0.0

500
弁別子 =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

どの環境変数が存在するかに基づいて、どの FaaS 環境がアクティブであるかを決定するマッピング。

以来

  • 2.0.0

{
  '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 の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

指定された型の値を強制する方法を説明します。

以来

  • 2.0.0

{
  string: ->(v) { 文字列(v) },
  整数: ->(v) { 整数(v) }
}.freeze
FIELDS =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

各 FaaS 環境に必要なフィールドと、そのフィールドに予想されるタイプ、およびハンドシェイク ドキュメントでのフィールドの名前付け方法について説明します。

以来

  • 2.0.0

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

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#初期化環境

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

新しい AppMetadata::Environment オブジェクトを作成し、現在の Env 変数から初期化します。 FaaS 環境が検出されない場合、または環境に無効または競合する状態が含まれている場合は、{{name} を {nil} に設定して初期化されます。

以来

  • 2.0.0



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 .message } の " 値 が長すぎ ます "
end

インスタンス属性の詳細

#errorString | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

注:

これらのエラー メッセージはユーザーに伝達されません。トラブルシューティングとデバッグのみを目的としたものです)。

有効な FaaS 環境が検出されなかった理由を説明するエラーメッセージを返します。エラーが発生していない場合は nil を返します。

次の値を返します。

  • ( string | nil )

    有効な FaaS 環境が検出されなかったことを説明するエラーメッセージ、またはエラーが発生しなかった場合は nil 。

以来

  • 2.0.0



105
106
107
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 105

デフォルト エラー
  @error
end

フィールド=ハッシュ | nil (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

検出された FaaS 環境を説明するフィールドを返します。

次の値を返します。

  • (ハッシュ | nil )

    検出された FaaS 環境を説明するフィールド。

以来

  • 2.0.0



98
99
100
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 98

デフォルト フィールド
  @fields
end

# name = string | nil (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

検出された FaaS 環境の名前を返します。有効な FaaS 環境が検出されなかった場合は nil を返します。

次の値を返します。

  • ( string | nil )

    検出された FaaS 環境の名前、または有効な FaaS 環境が検出されなかった場合は nil 。

以来

  • 2.0.0



94
95
96
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 94

デフォルト name
  @name
end

インスタンス メソッドの詳細

# Amazon Web Services = true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

現在の環境が有効なAmazon Web Services Lambda環境であるかどうかをクエリします。

次の値を返します。

  • true | false

    環境がAmazon Web Services Lambda環境であるかどうか。

以来

  • 2.0.0



157
158
159
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 157

デフォルト Amazon Web Servicesは表示されません。
  @name == 'aws.lambda'
end

はAzureますか。 = true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

現在の環境が有効な Azure 環境であるかどうかをクエリします。

次の値を返します。

  • true | false

    環境が Azure 環境であるかどうか。

以来

  • 2.0.0



166
167
168
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 166

デフォルト azure?
  @name == 'azure.func'
end

#コンテナ= ハッシュ | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

検出コンテナ情報をクエリします。

次の値を返します。

  • (ハッシュ | nil )

    検出されたコンテナ情報、またはコンテナが検出されなかった場合は nil 。

以来

  • 2.0.0



131
132
133
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 131

デフォルト コンテナ
  フィールド[:コンテナ]
end

#FAS = true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

現在の環境が有効な FaaS 環境であるかどうかをクエリします。

次の値を返します。

  • true | false

    環境が FaaS 環境であるかどうか。

以来

  • 2.0.0



148
149
150
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 148

デフォルト faas?
  @name != nil
end

GCP = true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

現在の環境が有効な GCP 環境であるかどうかをクエリします。

次の値を返します。

  • true | false

    環境が GCP 環境であるかどうか。

以来

  • 2.0.0



175
176
177
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 175

デフォルト gcp?
  @name == 'gcp.func'
end

存在する場合= true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

環境情報を検出できたかどうかをクエリします。

次の値を返します。

  • true | false

    環境情報が検出された場合は になります。

以来

  • 2.0.0



140
141
142
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 140

デフォルト 存在するかどうか
  @name || フィールド.any?
end

# to_h =ハッシュ

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

検出された環境情報をハッシュにコンパイルします。

次の値を返します。

  • ハッシュ

    検出された環境情報。

以来

  • 2.0.0



191
192
193
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 191

デフォルト to_h
  name ? フィールド.merge(name: name) : フィールド
end

番号: = true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

現在の環境が有効な Vercel 環境であるかどうかをクエリします。

次の値を返します。

  • true | false

    環境が Vercel 環境であるかどうか。

以来

  • 2.0.0



184
185
186
# ファイル 'lib/mongo/ サーバー/app_metadata/environment.rb' 行 184

デフォルト vercel?
  @name == 'vercel'
end