環境変数システム
環境変数システム
Section titled “環境変数システム”設定可能なストレージバックエンドを通じて環境変数を管理します。
環境変数システムはストレージとアクセスを分離します:
- ストレージ - 値が保存される場所(OS、ファイル、メモリ)
- 変数 - ストレージ内の値への名前付き参照
変数は以下で参照できます:
- パブリック名 -
variableフィールドの値(システム全体で一意である必要があります) - エントリID - 完全な
namespace:name参照
変数を名前でパブリックにアクセス可能にしたくない場合は、variableフィールドを省略してください。
エントリ種別
Section titled “エントリ種別”| 種別 | 説明 |
|---|---|
env.storage.memory | インメモリキーバリューストレージ |
env.storage.file | ファイルベースストレージ(.env形式) |
env.storage.os | 読み取り専用OS環境変数アクセス |
env.storage.static | 読み取り専用の静的キーバリューストレージ |
env.storage.router | 複数のストレージをチェーン |
env.variable | ストレージを参照する名前付き変数 |
ストレージバックエンド
Section titled “ストレージバックエンド”メモリストレージ
Section titled “メモリストレージ”揮発性インメモリストレージ。
- name: runtime_env kind: env.storage.memoryファイルストレージ
Section titled “ファイルストレージ”.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ストレージ
Section titled “OSストレージ”オペレーティングシステムの環境変数への読み取り専用アクセス。
- name: os_env kind: env.storage.os常に読み取り専用。Set操作はPERMISSION_DENIEDを返します。
静的ストレージ
Section titled “静的ストレージ”設定に直接定義された値を持つ読み取り専用ストレージ。値はエントリに組み込まれ、実行時に変更できません。モジュールやパックに同梱する公開設定定数に便利です。
- 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"| プロパティ | 型 | 説明 |
|---|---|---|
values | map | キーバリューペア(文字列から文字列) |
常に読み取り専用。Set操作はPERMISSION_DENIEDを返します。
ルーターストレージ
Section titled “ルーターストレージ”複数のストレージをチェーン。読み取りは見つかるまで順番に検索。書き込みは最初のストレージにのみ送信。
- 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-z、A-Z、0-9、_
アクセスパターン
Section titled “アクセスパターン”# パブリック変数 - 名前"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 | いいえ |
ランタイムアクセス
Section titled “ランタイムアクセス”- envモジュール - Luaランタイムアクセス