Làm việc với các biến môi trường trong Rust
Các biến môi trường đóng vai trò quan trọng trong việc định cấu hình và tùy chỉnh hành vi của phần mềm hiện đại, cung cấp một cách linh hoạt để truyền tải thông tin đến các ứng dụng mà không cần các giá trị mã hóa cứng.
Biến môi trường là các cặp khóa-giá trị động được đặt trong môi trường của hệ điều hành hoặc tệp biến môi trường để truy cập trong thời gian chạy. Không giống như các giá trị được mã hóa cứng, các biến môi trường cho phép tính linh hoạt và khả năng thích ứng cao hơn vì bạn có thể dễ dàng sửa đổi chúng.
Có nhiều gói và mô-đun để tương tác với các biến môi trường trong hệ sinh thái của Rust, bao gồm dotenv, ghen tỵVà cấu hình thùng của bên thứ ba và sử dụng tích hợp sẵn của Rust std::env mô-đun.
Mục Lục
Giới thiệu về dotenv Crate
Các dotenv thùng là một công cụ có giá trị để quản lý các biến môi trường trong dự án Rust của bạn. Các dotenv crate cung cấp các chức năng tích hợp đơn giản và dễ sử dụng giúp đơn giản hóa quá trình tải và truy cập các biến môi trường từ các tệp biến môi trường.
Các tính năng của thùng dotenv bao gồm tải biến môi trường liền mạch, phương pháp xử lý lỗi cho các biến bị thiếu, tương tác với std::env mô-đun, v.v.
thêm dotenv thùng để của bạn Cargo.toml phần phụ thuộc của tệp để bắt đầu tương tác với các biến môi trường bằng cách sử dụng gói.
[dependencies]
dotenv = "0.15.0"
Chạy lệnh này trong thiết bị đầu cuối của thư mục dự án của bạn để tạo tệp biến môi trường và chèn một cặp khóa-giá trị.
echo DATABASE_URL=database.db > .env
Đây là cách bạn có thể tải tệp môi trường và truy xuất giá trị của một cặp từ tệp (trong trường hợp này là giá trị của DATABASE_URL chìa khóa:
use std::env;
use dotenv::dotenv;fn main() {
dotenv().ok();
let database_url = env::var("DATABASE_URL").expect("You've not set the DATABASE_URL");
println!("Database URL: {}", database_url);
}
Các chủ yếu chức năng tải các .env tập tin với Được rồi chức năng, đọc giá trị từ tệp với env::var chức năng và xử lý các lỗi có thể xảy ra với trông chờ chức năng.
Giới thiệu về mô-đun std::env
Ngoài ra, thay vì sử dụng các gói của bên thứ ba, bạn có thể sử dụng tích hợp sẵn của Rust std::env module để đọc các biến môi trường từ máy của bạn.
Trước tiên, bạn sẽ cần nhập env module trong tệp Rust của bạn như sau:
use std::env;
Sau khi nhập khẩu std::env module, bạn có thể đọc và ghi các biến môi trường.
Đây là cách bạn có thể đọc NKT (Thư mục làm việc hiện tại) biến môi trường với std::env mô-đun.
use std::env;fn main() {
let variable = env::var("PWD").expect("Error: Working directory environment variable not found");
println!("Value associated with the PWD key: {}", variable);
}
Các chủ yếu hàm in giá trị được liên kết với NKT khóa sau khi biến lấy giá trị bằng env::var chức năng.
Ngoài ra, bạn có thể sử dụng std::env mô-đun set_var chức năng thiết lập các biến môi trường.
use std::env;fn main() -> Result<(), Box<dyn std::error::Error>> {
env::set_var("DATABASE_URL", "database.db");
let env_variable = env::var("DATABASE_URL");
if env_variable.is_err() {
println!("Error: DATABASE_URL not found");
} else {
println!("DATABASE_URL set to: {}", env_variable.unwrap());
}
Ok(())
}
Các chủ yếu hàm đặt biến môi trường với set_var hàm nhận cặp khóa-giá trị. Sau khi đặt biến môi trường, hàm in giá trị được liên kết với khóa.
Các biến môi trường rất linh hoạt
Biến môi trường là một công cụ có giá trị để xử lý dữ liệu động; chúng tạo điều kiện phát triển dựa trên thử nghiệm vì bạn có thể dễ dàng thay đổi dữ liệu và chạy các trường hợp thử nghiệm cho nhiều tình huống.
Bằng cách sử dụng biến môi trường, bạn có thể tránh thông tin nhạy cảm khó mã hóa như tên người dùng cơ sở dữ liệu, mật khẩu và URL kết nối trực tiếp vào mã nguồn, do đó nâng cao tính bảo mật cho ứng dụng của bạn đồng thời cho phép quản lý cấu hình dễ dàng hơn.