コードを記述するときは、通常、最初に自分のコンピューターでコードを開発してから、そのコードをサーバーにデプロイします。コードの一部にデータベースの読み取りと書き込み、または他のオンライン サービス インターフェイスへのアクセスが含まれる場合、オンライン環境に影響を与えないように、開発中に通常はテスト環境のデータベースとオンライン環境のデータベースを分離します。
たとえば、プログラムは MongoDB と Redis にアクセスする必要があるため、コードでは次のように記述できます:
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')
プログラムをオンライン環境にデプロイする場合は、コード内の MongoDB 接続パラメータと Redis 接続パラメータをオンライン環境のパラメータに手動で変更します。次に、コードを Git に送信し、最新のコードをサーバー上にプルしてデプロイします。
ただし、新しい機能を変更して再度テストしたい場合は、これらの接続パラメータをテスト環境のパラメータに変更して、自分のコンピュータ上で動作させる必要があります。変更を忘れて直接実行すると、オンライン環境にダーティなデータが書き込まれる可能性があります。
したがって、誰かが環境変数を使用して、読み取られるパラメータを制御する可能性があります。例:
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)
この方法では、データベースの接続パラメータを手動で変更する必要はありません。オンライン環境の環境変数 env
を prod
に設定するだけで済みます。プログラムはオンライン環境に展開され、オンライン データベースのパラメータを自動的に使用します。環境変数 env
がコンピュータ上などの他の場所に prod
がない限り、または環境変数が単に存在しない限り、開発環境のパラメータが自動的に使用されます。
これを行うと、パラメーターの変更忘れによって引き起こされる問題は回避されますが、別の問題があります。他の人もこの Git ソースにアクセスできる場合、オンライン環境でデータベースに接続する方法がわかってしまいます。オンライン環境でデータを許可なく操作することもあり、セキュリティリスクやプライバシー漏洩を引き起こします。
より安全にするために、特別なファイルを使用して構成パラメータを保存することができ、プログラムはそのファイルからパラメータを読み取ります。オンライン環境ファイルにはオンラインパラメータが含まれ、開発環境ファイルには開発パラメータが含まれます。この構成ファイルは Git にアップロードされません。
たとえば、内容が次のような config.json ファイルを作成します:
{ "MONGODB_URI": "mongodb://username:password@127.0.0.1:27017", "REDIS_PARAMS": {"host": "127.0.0.1", "port": 6379, "password": "xxxx"} }
その後、コードは次のように変更されます:
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)
以上がmongodb、redis開発環境、本番環境の構成パラメータを正しく設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。