Biến môi trường là các cặp khóa-giá trị được đặt tên động được đặt riêng trong môi trường máy chủ được sử dụng để tác động đến các hoạt động đang chạy của chương trình.
Các biến môi trường phổ biến để tương tác với dữ liệu nhạy cảm với ứng dụng vì chúng cung cấp sự trừu tượng hóa trên giao diện của môi trường. Bạn có thể sử dụng các biến môi trường để tăng tính bảo mật cho ứng dụng của mình.
Go cung cấp hỗ trợ tích hợp để làm việc với biến môi trường và có nhiều gói để làm việc với biến môi trường và tệp biến môi trường (.env) trong hệ sinh thái Go.
Biến môi trường và Gói hệ điều hành
Gói os cung cấp chức năng để tương tác với hệ điều hành của môi trường máy chủ. Các hệ điều hành gói cung cấp các phương thức để đặt và truy xuất các cặp khóa-giá trị của biến môi trường.
Nhập các gói này để cài đặt, tải và in các biến môi trường trên máy chủ của bạn.
import (
"fmt"
"log"
"os"
"strings"
)
Bạn có thể đặt các cặp khóa-giá trị của biến môi trường bằng setenv phương pháp của hệ điều hành bưu kiện. Các setenv phương thức nhận cặp và trả về các lỗi có thể xảy ra.
err := os.Setenv("NAME", "John")
err = os.Setenv("OTHER", "DOE")
if err != nil {
return
}
Bạn có thể tìm nạp các biến môi trường bằng các khóa (tên) bằng Getenv phương pháp. Các Getenv phương thức lấy tên của biến môi trường và trả về giá trị được liên kết với khóa.
name := os.Getenv("NAME")
other := os.Getenv("OTHER")
Các môi trường phương pháp cho phép bạn truy cập tất cả các biến môi trường trên máy chủ của mình. Các môi trường trả về một lát chuỗi mà bạn có thể lặp qua và truy cập các khóa của biến môi trường.
for _, variables := range os.Environ() {
envPair := strings.SplitN(variables, "=", 2)
fmt.Println(envPair[0])
}
Các táchN phương pháp của gói chuỗi giúp phân tách bằng dấu phân cách. Trong trường hợp này, nó tách tên biến khỏi giá trị.
Cách tải biến môi trường từ tệp .env
Gói godotenv là một cổng Go của dự án Ruby dotenv để tải các biến môi trường từ tệp dotenv.
Các godotenv gói cung cấp các chức năng để làm việc với các tệp dotenv trên hệ điều hành gói, bạn có thể viết và đọc từ .env các tập tin.
Chạy lệnh này để tạo một .env tập tin trong thư mục làm việc của bạn.
touch .env
Lệnh touch được sử dụng để tạo tệp mới. Thêm các dòng mã sau vào tệp dotenv. Bạn sẽ sử dụng godotenv gói để đọc các biến môi trường này trong chương trình Go của bạn.
NAME="John"
OTHER="James"
Chạy lệnh này trong thiết bị đầu cuối của thư mục dự án của bạn để cài đặt godotenv gói dưới dạng phụ thuộc dự án.
go get github.com/joho/godotenv
Nhập các gói này vào tệp Go của bạn. Bạn sẽ sử dụng chúng cùng với godotenv gói để tải các biến môi trường và in chúng ra bàn điều khiển hoặc ghi lại các lỗi.
import (
"fmt"
"github.com/joho/godotenv"
"log"
"os"
)
Bạn có thể tải một .env tập tin với Trọng tải phương pháp của godotenv bưu kiện. Các Trọng tải phương thức lấy tên tệp và trả về các lỗi có thể xảy ra.
err := godotenv.Load(".env")
if err != nil {
log.Fatalf("Error loading environment variables file")
}
Sau khi tải tệp dotenv, bạn có thể sử dụng Getenv phương pháp của hệ điều hành gói để tải các biến môi trường.
name := os.Getenv("NAME")
other := os.Getenv("OTHER")
fmt.Println(name)
fmt.Println(other)
Bạn có thể ghi vào tệp dotenv bằng Viết phương pháp của godotenv bưu kiện. Các Viết phương thức lấy bản đồ các chuỗi thành chuỗi và trả về các lỗi có thể xảy ra.
func writeToDotEnv(){
env, _ := godotenv.Unmarshal("KEY=value")
err := godotenv.Write(env, ".env")
if err != nil {
log.Println("There was an error writing to the dotenv file")
}
}
Các godotenv gói sắp xếp lại chuỗi cặp khóa-giá trị với nguyên soái phương pháp và env biến trở thành ánh xạ của chuỗi thành kiểu chuỗi.
Các writeToDotEnv chức năng ghi nội dung của bản đồ vào .env tập tin trong thư mục làm việc. Thao tác này sẽ ghi đè lên dữ liệu hiện có.
Các biến môi trường luôn có ích
Các biến môi trường giúp dễ dàng đặt và thay đổi các tham số thực thi của ứng dụng mà không làm thay đổi mã hoặc cấu hình, do đó làm tăng tính di động của ứng dụng của bạn.
Bạn có thể có nhiều biến môi trường và dotenv các tệp cho các tình huống khác nhau để kiểm tra cách ứng dụng của bạn chạy dưới các thông số hoặc điều kiện khác nhau.