Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menetapkan dengan betul parameter konfigurasi persekitaran pembangunan dan persekitaran pengeluaran mongodb dan redis

Bagaimana untuk menetapkan dengan betul parameter konfigurasi persekitaran pembangunan dan persekitaran pengeluaran mongodb dan redis

王林
王林ke hadapan
2023-06-03 20:04:151435semak imbas

Apabila kami menulis kod, kami biasanya membangunkannya pada komputer kami sendiri dan kemudian menggunakan kod itu ke pelayan. Jika sekeping kod melibatkan membaca dan menulis pangkalan data, atau mengakses beberapa antara muka perkhidmatan dalam talian yang lain, maka semasa pembangunan, untuk tidak menjejaskan persekitaran dalam talian, kami biasanya memisahkan pangkalan data dalam persekitaran ujian dan pangkalan data dalam persekitaran dalam talian.

Sebagai contoh, program kami perlu mengakses MongoDB dan Redis, jadi dalam kod, kami mungkin menulis seperti ini:

import pymongo
import redis

handler = pymongo.MongoClient('mongodb://username:password@127.0.0.1:27017').db.col
client = redis.Redis(host='127.0.0.1', port=6379, password='xxxx')

Apabila anda ingin menggunakan program ke persekitaran dalam talian, anda menukar parameter sambungan MongoDB dan parameter sambungan Redis secara manual dalam kod kepada parameter persekitaran dalam talian. Kemudian serahkan kod ke Git, tarik kod terkini pada pelayan dan gunakannya.

Walau bagaimanapun, apabila anda ingin mengubah suai fungsi baharu dan mengujinya semula, anda perlu mengubah suai parameter sambungan ini kepada parameter persekitaran ujian dan beroperasi pada komputer anda sendiri. Jika anda terlupa untuk mengubah suai dan menjalankan terus, data kotor mungkin ditulis ke persekitaran dalam talian.

Jadi, seseorang boleh menggunakan pembolehubah persekitaran untuk mengawal parameter baca, contohnya:

import os
import redis
import pymongo

if os.getenv('env', 'prod'):  # 线上环境 
    MONGODB_URI = 'mongodb://username:password@xx.xx.xx.xx:27017'
    REDIS_PARAMS = {'host': 'xx.xx.xx.xx', 'port': 6379, 'password': 'xxxx'}
else:  # 测试环境
    MONGODB_URI = 'mongodb://username:password@127.0.0.1:27017'
    REDIS_PARAMS = {'host': '127.0.0.1', 'port': 6379, 'password': 'xxxx'}

handler = pymongo.MongoClient(MONGODB_URI).db.col
client = redis.Redis(**REDIS_PARAMS)

Dengan cara ini, anda tidak perlu mengubah suai parameter sambungan pangkalan data secara manual selagi anda menetapkan pembolehubah persekitaran env persekitaran dalam talian kepada prod, maka program akan digunakan ke dalam. persekitaran dalam talian dan ia akan menggunakan pangkalan data dalam talian secara automatik. Selagi pembolehubah persekitaran env tidak prod atau tidak wujud di tempat lain, seperti pada komputer anda, parameter persekitaran pembangunan akan digunakan secara automatik.

Melakukan ini mengelakkan masalah yang disebabkan oleh terlupa untuk mengubah suai parameter, tetapi terdapat masalah lain: jika orang lain juga mempunyai akses kepada sumber Git ini, maka mereka akan tahu cara menyambung ke pangkalan data dalam persekitaran dalam talian. Mereka juga memanipulasi data dalam persekitaran dalam talian tanpa kebenaran, menyebabkan risiko keselamatan atau kebocoran privasi.

Untuk keselamatan yang lebih baik, anda boleh menggunakan fail khas untuk menyimpan parameter konfigurasi dan program membaca parameter daripada fail. Fail persekitaran dalam talian mengandungi parameter dalam talian, dan fail persekitaran pembangunan mengandungi parameter pembangunan. Fail konfigurasi ini tidak dimuat naik ke Git.

Sebagai contoh, kami mencipta fail config.json dengan kandungan:

{
    "MONGODB_URI": "mongodb://username:password@127.0.0.1:27017",
    "REDIS_PARAMS": {"host": "127.0.0.1", "port": 6379, "password": "xxxx"}
}

Kemudian kod kami diubah suai seperti ini:

import os
import json
import redis
import pymongo

CONFIG_PATH = '/etc/config/config.json'
if not os.path.exists(CONFIG_PATH):
    print('配置文件不存在,自动使用测试环境参数!')
    MONGODB_URI = 'mongodb://username:password@127.0.0.1:27017'
    REDIS_PARAMS = {'host': '127.0.0.1', 'port': 6379, 'password': 'xxxx'}
else:
    with open(CONFIG_PATH, encoding='utf-8') as f:
        config = json.load(f)
        MONGODB_URI = config['MONGODB_URI']
        REDIS_PARAMS = config["REDIS_PARAMS"]
    
handler = pymongo.MongoClient(MONGODB_URI).db.col
client = redis.Redis(**REDIS_PARAMS)

Atas ialah kandungan terperinci Bagaimana untuk menetapkan dengan betul parameter konfigurasi persekitaran pembangunan dan persekitaran pengeluaran mongodb dan redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam