php小編草莓將為您介紹如何使用 dev_appserver.py 和 google.golang.org/ 連接到 Google Cloud Datastore。dev_appserver.py 是一個(gè)開發(fā)服務(wù)器,可以模擬 Google App Engine 的環(huán)境,而 google.golang.org/ 則是一個(gè) Go 語言的官方代碼庫。通過結(jié)合使用這兩者,您可以輕松連接到 Google Cloud Datastore,并進(jìn)行數(shù)據(jù)的讀取和寫入操作。在本文中,我們將為您詳細(xì)講解具體的操作步驟,以幫助您快速上手并順利連接到 Google Cloud Datastore。
問題內(nèi)容
正如標(biāo)題所說。我們有一個(gè)舊版 Go 1.11 AppEngine API,需要 dev_appserver.py
才能運(yùn)行。簡(jiǎn)而言之,我希望 appengine.Main()
和 appengine.NewContext(r)
允許我的應(yīng)用程序使用我的 project-id
指向我的云數(shù)據(jù)存儲(chǔ),而不是本地模擬器的存儲(chǔ)。我設(shè)置了 GOOGLE_APPLICATION_CREDENTIALS
沒有效果。
這樣我就可以在本地運(yùn)行服務(wù)器,同時(shí)訪問共享的云數(shù)據(jù)庫。
我正在使用 google.golang.org/[email?protected]
和 dev_appserver.py --enable_console --port=8081 --support_datastore_emulator=true --go_debugging=true app.yaml
這可能嗎?或者在使用舊的 Go 庫時(shí)我是否停留在本地模擬器上?
解決方法
從評(píng)論轉(zhuǎn)向回答
查看 go 1.11 的 remote_api
https://www.php.cn/link/2d680487650d66445b50d3d759eccad4
使用它的邏輯類似于 –
如果在本地環(huán)境中運(yùn)行,請(qǐng)使用 remote_api
否則堅(jiān)持默認(rèn)行為(即由于 remote_api
未啟用,它將在本地環(huán)境中使用模擬器或直接在生產(chǎn)中使用生產(chǎn)數(shù)據(jù))
為了簡(jiǎn)單起見,您可以嘗試使用相同的變量名稱,即
if this is local environment ctx, err := remote_api.NewRemoteContext(host, hc) else ctx := appengine.NewContext(r)
登錄后復(fù)制
然后,您在對(duì)數(shù)據(jù)存儲(chǔ)區(qū)的其余查詢/調(diào)用中使用“ctx”
注意:我不熟悉“go”,因此將以上內(nèi)容視為偽代碼而不是工作代碼
您可能還想考慮不使用 --support_datastore_emulator=true
標(biāo)志運(yùn)行上述更改