コンテンツにスキップ

環境変数システム

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

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

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

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

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

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

種別説明
env.storage.memoryインメモリキーバリューストレージ
env.storage.fileファイルベースストレージ(.env形式)
env.storage.os読み取り専用OS環境変数アクセス
env.storage.static読み取り専用の静的キーバリューストレージ
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_pathstring必須.envファイルへのパス
auto_createbooleanfalse存在しない場合はファイルを作成
file_modeinteger0644ファイルパーミッション
dir_modeinteger0755ディレクトリパーミッション

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

- name: os_env
kind: env.storage.os

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

設定に直接定義された値を持つ読み取り専用ストレージ。値はエントリに組み込まれ、実行時に変更できません。モジュールやパックに同梱する公開設定定数に便利です。

- name: defaults
kind: env.storage.static
values:
PUBLIC_API_HOST: "https://api.example.com"
PUBLIC_WS_HOST: "wss://api.example.com/ws"
APP_ENV: "production"
プロパティ説明
valuesmapキーバリューペア(文字列から文字列)

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

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

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

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

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

変数名には次の文字のみ含めることができます: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いいえ