Ymparistomuuttujat
English | 中文 | 日本語 | 한국어 | Français | Deutsch | Español | Português | Svenska | Suomi | Nederlands
Ymparistomuuttujien nimet maaritellaan skeemassa confique-attribuuteilla:
#![allow(unused)]
fn main() {
#[derive(Debug, Config)]
struct DatabaseConfig {
#[config(env = "APP_DATABASE_URL")]
url: String,
#[config(default = 16)]
#[config(env = "APP_DATABASE_POOL_SIZE")]
pool_size: u32,
}
}
rust-config-tree lukee nama nimet confique::Config::META-metadatasta ja rakentaa Figment-providerin, joka mapittaa jokaisen ymparistomuuttujan tarkkaan kenttapolkuunsa.
Ala kayta erotinmerkkeihin perustuvaa Figmentin ymparistomappausta taman craten kanssa:
#![allow(unused)]
fn main() {
// Do not use this pattern for rust-config-tree schemas.
Env::prefixed("APP_").split("_")
Env::prefixed("APP_").split("__")
}
split("_") tulkitsee alaviivat sisakkaisten avainten erottimiksi. Silloin APP_DATABASE_POOL_SIZE muuttuu poluksi kuten database.pool.size, joka on ristiriidassa Rust-kenttanimien kuten pool_size kanssa.
ConfiqueEnvProvider-providerilla mappaus on eksplisiittinen:
APP_DATABASE_POOL_SIZE -> database.pool_size
Yksittaiset alaviivat pysyvat osana ymparistomuuttujan nimea. Figment ei arvaa sisakkaisyyssaantoa.
Dotenv-lataus
Ennen runtime-providereiden arviointia lataaja etsii .env-tiedostoa kulkemalla ylospain juurikonfiguraatiotiedoston hakemistosta.
Prosessin olemassa olevat ymparistomuuttujat sailyvat. .env-arvot tayttavat vain puuttuvat ymparistomuuttujat.
Esimerkki:
APP_SERVER_PORT=9000
APP_DATABASE_POOL_SIZE=64
Nama muuttujat ohittavat konfiguraatiotiedoston arvot, kun skeema maarittelee vastaavat #[config(env = "...")]-attribuutit.
Arvojen jasantaminen
Siltaprovider antaa Figmentin jasantaa ymparistoarvot. Se ei kutsu confique-kirjaston parse_env-hookeja. Pida monimutkaiset arvot konfiguraatiotiedostoissa, ellei Figmentin ymparistoarvosyntaksi sovi tyypille hyvin.