3

나는 Google App Engine's flexible Python 3 environment and Cloud Datastore으로 실험하고있다. 로컬에서 테스트 할 때 Gunicorn과 같은 앱에서 앱을 실행하고 gcloud.datastore에서 Datastore API에 액세스해야합니다 (일반적으로). 예를 들어 :`gcloud.datastore`는 로컬 dev 상태를 유지하며, 어떻게 지울 수 있습니까?

(dev에 모드에서) 로컬로 실행
import gcloud.datastore as g_datastore 
ds = g_datastore.Client(...) 
entity = datastore.Entity(key=ds.key(...)) 
ds.put(entity) 

, 엔티티 '상태는 실행 사이에 유지됩니다. 나는 내 인생을 위해서 그들이 어디에 저장되는지 또는 gcloud.datastore.Client을 생성/액세스 한 후 생성되는 dev 데이터 저장소를 지우는 방법을 알아낼 수 없다. 내가 알 수있는 한 을 통해 실행될 때 ndb이 사용하는 것과 동일한 장소를 사용하지 않습니다.

나는 이런 식으로 뭔가 (OS X를 실행)와 함께 알아 내려고 시도했다 :

$ touch foo 
$ GCLOUD_PROJECT=... python .../main.py 
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) 
* Restarting with stat 
* Debugger is active! 
* Debugger pin code: ... 
127.0.0.1 - - [04/Jul/2016 10:36:01] "GET/HTTP/1.1" 200 - 
... 
^C 
$ sudo find /private/tmp /var/db /var/tmp ~/.config/gcloud ~/Library -newer foo 
... 
# nothing meaningful 

나는 소스 코드를보고했는데, some unit test cleanup code 발견 : A)와 함께 배포되지 않습니다 pip install gcloud; 그리고 (나에게 더 중요하다) b) 그 물건이 실제로 어디에 저장되는지에 대한 단서를주지 않는다.

난 Gunicorn가 실행되는 동안이 작업을 시도했다 :

푸는 (dev에 모드에서) 로컬로 실행 사이 gcloud.datastore 저장 상태를 실행 않습니다
$ sudo lsof | grep -Ei 'python' 
# nothing meaningful 

!

+0

appengine에 대한 매우 상세한 방법으로 gcloud를 설정하는 데 도움이되는이 대답을 읽어 볼 수 있습니다. http://stackoverflow.com/a/28095663/1059396 – minocha

+0

나는 그것이 나를 돕지 않는다고 생각합니다. 'dev_appserver.py'는 유연한 Python 환경 (특히 Python 3)과 호환되지 않습니다. – posita

답변

4

소년 바보 같습니까? 기본적으로 gcloud.datastore은 (...) Google Cloud Datastore에 연결됩니다. 진짜. 나는 왜 내가 다른 것을 기대했는지 모른다.

내 로컬 자격 증명을 사용하기 위해 내 로컬 gcloud 구성이 이미 제공 되었기 때문에이 문제를 즉시 파악하지 못했으며 내 로컬 인스턴스를 실행할 때 GCLOUD_PROJECT 환경을 설정했습니다. 와! (당연히 내가 로컬 디스크에 변경 사항을보고하지 있었다!)

을 그래서, 당신은는 "dev에"로컬로 실행 클라우드 데이터 저장소를 갖고 싶어 경우, 당신은 Datastore emulator를 실행해야합니다. 이는 dev_appserver.py을 실행하는 것보다 복잡합니다.이 작업은 모두 당신을 위해이 모든 작업을 처리하므로 앱의 데이터 저장소 호출에서 index.yaml 파일의 값을 추론하는 방법은 this workflow을 참조하십시오. start 명령에 --data-dir 옵션을 제공하지 않으면 기본 로컬 저장 위치는 ~/.config/gcloud/emulators/datastore/...입니다.

질문을 삭제하는 대신 여기 나와 같은 나에게 numbskulls에게 경고/설명으로 남겨 두겠습니다.

+1

나는 이것이 바보 같은 질문이라고 생각하지 않는다. 공식 문서는 이것에 대해 아주 명확하지 않으며, 개발자들이 혼란스러워하는 것은 당연합니다. – diogovk