我正在使用“ go111”运行时来开发App Engine应用程序。根据{{3}},访问数据存储区应使用Migrating your App Engine app from Go 1.9 to Go 1.11。但是,调用package datastore失败,并显示“找不到默认凭据”。 有什么想法如何使用默认凭据访问数据存储吗?
答案 0 :(得分:1)
在启动应用程序之前设置GOOGLE_APPLICATION_CREDENTIALS
环境变量。
在第二代运行时中,如果您不使用任何google.golang.org/appengine
API,则无需使用dev_appserver.py
-您可以正常构建和启动应用程序(go build
和/或go run
)。
此外,显式传递凭据非常罕见。 cloud.google.com/go
API都应自动为您找到您的凭据。在本地运行时,设置GOOGLE_APPLICATION_CREDENTIALS
和GOOGLE_CLOUD_PROJECT
环境变量应足以运行。请参阅https://cloud.google.com/docs/authentication/production#obtaining_credentials_on_app_engine_standard_environment(请注意对此不常见的评论)。
答案 1 :(得分:0)
我刚刚使用..
使用本地应用引擎SDK--support_datastore_emulator=true
传递给dev_appserver.py
--datastore_emulator_port=9090
传递给dev_appserver.py
DATASTORE_EMULATOR_HOST
中将环境变量localhost:9090
设置为app.yaml
DATASTORE_PROJECT_ID
中将环境变量my project id
设置为app.yaml
在Go 1.11代码中,我仅使用cloud.google.com/go/datastore
创建了一个新的datastore.NewClient(ctx, "")
客户端,该客户端将拾取环境变量并连接到本地数据存储模拟器(作为dev_appserver.py
的一部分运行) )。