環境変数システム

設定可能なストレージバックエンドを通じて環境変数を管理します。

概要

環境変数システムはストレージとアクセスを分離します:

  • ストレージ - 値が保存される場所(OS、ファイル、メモリ)
  • 変数 - ストレージ内の値への名前付き参照

変数は以下で参照できます:

  • パブリック名 - variableフィールドの値(システム全体で一意である必要があります)
  • エントリID - 完全なnamespace:name参照

変数を名前でパブリックにアクセス可能にしたくない場合は、variableフィールドを省略してください。

エントリ種別

種別 説明
env.storage.memory インメモリキーバリューストレージ
env.storage.file ファイルベースストレージ(.env形式)
env.storage.os 読み取り専用OS環境変数アクセス
env.storage.router 複数のストレージをチェーン
env.variable ストレージを参照する名前付き変数

ストレージバックエンド

メモリストレージ

揮発性インメモリストレージ。

- name: runtime_env
  kind: env.storage.memory

ファイルストレージ

.envファイル形式(#コメント付きKEY=VALUE)を使用した永続ストレージ。

- name: app_config
  kind: env.storage.file
  file_path: /etc/app/config.env
  auto_create: true
  file_mode: 0600
  dir_mode: 0700
プロパティ デフォルト 説明
file_path string 必須 .envファイルへのパス
auto_create boolean false 存在しない場合はファイルを作成
file_mode integer 0644 ファイルパーミッション
dir_mode integer 0755 ディレクトリパーミッション

OSストレージ

オペレーティングシステムの環境変数への読み取り専用アクセス。

- name: os_env
  kind: env.storage.os

常に読み取り専用。Set操作はPERMISSION_DENIEDを返します。

ルーターストレージ

複数のストレージをチェーン。読み取りは見つかるまで順番に検索。書き込みは最初のストレージにのみ送信。

- name: config
  kind: env.storage.router
  storages:
    - app.config:memory    # プライマリ(ここに書き込み)
    - app.config:file      # フォールバック
    - app.config:os        # フォールバック
プロパティ 説明
storages array ストレージ参照の順序付きリスト

変数

変数はストレージ値への名前付きアクセスを提供します。

- name: DATABASE_URL
  kind: env.variable
  variable: DATABASE_URL
  storage: app.config:file
  default: postgres://localhost/app
  read_only: false
プロパティ 説明
variable string パブリック変数名(オプション、一意である必要があります)
storage string ストレージ参照(namespace:name
default string 見つからない場合のデフォルト値
read_only boolean 変更を防止

変数の命名

変数名には次の文字のみ含めることができます:a-zA-Z0-9_

アクセスパターン

# パブリック変数 - 名前"PORT"でアクセス可能
- name: port_var
  kind: env.variable
  variable: PORT
  storage: app.config:os
  default: "8080"

# プライベート変数 - ID "app.config:internal_key"でのみアクセス可能
- name: internal_key
  kind: env.variable
  storage: app.config:secrets

エラー

条件 種別 リトライ可能
変数が見つからない errors.NOT_FOUND いいえ
ストレージが見つからない errors.NOT_FOUND いいえ
変数が読み取り専用 errors.PERMISSION_DENIED いいえ
ストレージが読み取り専用 errors.PERMISSION_DENIED いいえ
無効な変数名 errors.INVALID いいえ

ランタイムアクセス

関連項目