Configuration ve secrets
Dosya, environment ve secret değerlerinden başlangıçta doğrulanan bir configuration oluşturun.
ConfigService, uygulama ayarlarını başlangıçta yükler ve değişmez bir görünüm olarak DI üzerinden sunar. Her istek için yeniden config owner oluşturmanız gerekmez.
Yerel ayarlar#
Bootstrap değişkenleri belirtilmemişse development modunda çalışma dizinindeki lily.toml okunur. Dosya bulunmaması bu modda schema default’larına izin verir.
# lily.toml
[server]
host = "127.0.0.1"
port = 8080
tls_enabled = false
max_connections = 1000
request_timeout_secs = 30
[lifecycle]
shutdown_timeout_secs = 30
[custom]
application_name = "users-api"AppBuilder::default() listener adresini config’ten alır. AppBuilder::new("host:port") adresi açıkça belirler; diğer ayarları veya TLS’i kendiliğinden sıfırlamaz.
Environment ve secret sırası#
Değerler şu sırayla hazırlanır:
- TOML dosyası okunur.
LILY__SECTION__FIELDenvironment değerleri uygulanır.- Tam
${secret:key}ve${file:/absolute/path}referansları çözülür. - Typed schema doğrulanır ve değişmez snapshot oluşturulur.
Örneğin LILY__SERVER__PORT=9090 portu değiştirir. Bilinmeyen typed alanlar reddedilir; uygulamaya ait anahtarları [custom] altında tutun.
Production başlangıcı#
Yol ve mod birlikte verilmelidir. Production’da eksik config dosyası hatadır.
LILY_CONFIG_PATH=/etc/lily/lily.toml LILY_CONFIG_MODE=production cargo runAppBuilder::secret_resolver(resolver), config yüklenmeden önce uygulamanızın secret çözümleyicisini bağlar. .container(...) ile aynı anda kullanılamaz. Dış container kuruyorsanız ConfigService::with_options_and_secret_resolver(...) değerini kayıtlı Singleton için seed edin.
Ayar okuma ve override#
Servisler ConfigService::get, get_optional ve get_or_default ile uygulama değerlerini okur. İşletim görünümünde redacted_effective_config kullanın. Runtime reload bulunmaz; değişiklikler yeni başlangıçta uygulanır.
transport_config, rustls_config ve tls_disabled ilgili builder override’larıdır. Bütün transport alanları TOML server şemasında yer almaz. max_request_body_bytes ve trusted_proxy_cidrs gibi alanlar için HttpTransportConfig kullanın.
Bu sayfanın kaynakları v0.1.0
Anlatım, incelenen framework commit’ine dayanır.