민감한 데이터 인 경우 소스 제어에 체크인되므로 소스 코드에 저장해서는 안됩니다. 조직 내부 또는 외부에서 잘못된 사람들이 찾을 수 있습니다. 또한 개발 환경은 프로덕션 환경과 다른 구성 값을 사용합니다. 이러한 값이 코드에 저장되면 개발 및 프로덕션에서 다른 코드를 실행해야하는데 이는 지저분하고 나쁜 습관입니다.
내 프로젝트에서 다음 클래스를 사용하여 데이터 저장소에 구성 데이터를 넣습니다.
from google.appengine.ext import ndb
class Settings(ndb.Model):
name = ndb.StringProperty()
value = ndb.StringProperty()
@staticmethod
def get(name):
NOT_SET_VALUE = "NOT SET"
retval = Settings.query(Settings.name == name).get()
if not retval:
retval = Settings()
retval.name = name
retval.value = NOT_SET_VALUE
retval.put()
if retval.value == NOT_SET_VALUE:
raise Exception(('Setting %s not found in the database. A placeholder ' +
'record has been created. Go to the Developers Console for your app ' +
'in App Engine, look up the Settings record with name=%s and enter ' +
'its value in that record\'s value field.') % (name, name))
return retval.value
응용 프로그램은 다음을 수행하여 값을 얻습니다.
API_KEY = Settings.get('API_KEY')
데이터 저장소에 해당 키에 대한 값이 있으면 가져옵니다. 없는 경우 자리 표시 자 레코드가 생성되고 예외가 발생합니다. 예외는 Developers Console로 이동하여 자리 표시 자 레코드를 업데이트하도록 알려줍니다.
구성 값 설정에서 추측이 필요하다는 것을 알았습니다. 설정할 구성 값이 확실하지 않은 경우 코드를 실행하면 알려줍니다!
위의 코드는 내부적으로 Memcache와 데이터 저장소를 사용하는 ndb 라이브러리를 사용하므로 빠릅니다.
최신 정보:
jelder 는 App Engine 콘솔에서 Datastore 값을 찾고 설정하는 방법을 물었습니다. 방법은 다음과 같습니다.
https://console.cloud.google.com/datastore/로 이동합니다.
아직 선택하지 않은 경우 페이지 상단에서 프로젝트를 선택합니다.
에서 종류 드롭 다운 상자, 선택 설정 .
위의 코드를 실행하면 키가 표시됩니다. 모두 NOT SET 값을 갖습니다 . 각각을 클릭하고 값을 설정하십시오.
도움이 되었기를 바랍니다!