大佬教程收集整理的这篇文章主要介绍了在Google App Engine环境中托管的Golang网络应用出现错误;应用前端BigQuery,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
解:
1)删除“上下文”导入
2)导入“ google.golang.org/appENGIne”;看到
[https://github.com/golang/appENGIne/blob/master/README.md][1]
有关更多详细信息,请参阅:本地appENGIne软件包安装
3)此功能
http.HandleFunc("/", bqPagE)
来电
bqPage(w http.ResponseWriter, req *http.request)
作为处理程序功能。将第二个req参数传递给构建/调用bigquery客户端的代码:
ctx := appENGIne.NewContext(req)
// Get the projectID value from the Google Cloud Console:
projectID := "--------------"
// Create a clIEnt.
clIEnt, err := bigquery.NewClIEnt(ctx, projectID)
一旦有了客户对象,就可以开展业务。
4)在DOS窗口中指向托管main.go文件的目录,运行
gcloud app deploy
然后使用
gcloud app browse
我构建了一个Golang网络应用,该应用在Google BigQuery项目的前端。该应用程序具有这些导入
import (
"context"
"html/template"
"log"
"net/http"
"regexp"
"Strings"
"strconv"
"cloud.google.com/go/bigquery"
"google.golang.org/api/iterator"
)
以及用于BigQuery安全凭证的JSON文件。在本地,它可以在localhost:8080完美运行。然后,我尝试使用Google App
ENGIne托管它,但遇到了一些错误。
对于Google App ENGIne部署,我首先在本地安装了Google Cloud SDK,运行了gcloud init,然后安装了
gcloud components install app-ENGIne-go
bq
core
gsutil
gcloud
beta
app-ENGIne-python
包。我从main.go中删除了main()函数,并且项目目录中包含一个YAML文件。我跑了
gcloud config set project {Correct project ID}
然后在DOS窗口中
gcloud app deploy
在项目目录中。我收到此错误(格式化为SO并删除私人信息):
C:\Golang Web Dev\golang-web-dev-master\bigqueryApp_AppENGIne>gcloud app deploy
ERROR: (gcloud.app.deploy)
Staging command
[C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appENGIne\goapp-stager.exe
C:\Golang Web Dev\golang-web-dev-master\bigqueryApp_AppENGIne\app.yaml
C:\Golang Web Dev\golang-web-dev-master\bigqueryApp_AppENGIne
c:\-----\-----\apPDAta\local\temp\--------\--------]
failed with return code [1].
-------------------------------------STDOUT-------------------------------------
-------------------------------------STDERR-------------------------------------
2017/07/18 18:14:44 failed analyzing C:\Golang Web Dev\golang-web-dev-master\bigqueryApp_AppENGIne:
cAnnot find package "google.golang.org/appENGIne/socket" in any of:
($GOROOT not set)
C:\Go Workspace\src\google.golang.org\appENGIne\socket (from $GOPATH)
GOPATH: C:\Go Workspace\src\google
我将此错误追溯到导入的错误
"cloud.google.com/go/bigquery"
包; 使用此技术,另一个没有cloud.google.com/go/bigquery的“测试”应用程序也可以正常工作。我试图导入
google.golang.org/appENGIne/socket
打包到应用程序中,然后出现另一个编译错误;好像此页面上说甚至不要去那里。接下来,我使用原始应用程序尝试了该vid中的想法,并将原始main()函数保留在main.go中。我打过
gcloud app deploy
在Cloud SHell窗口中。我懂了
$ ---_---------@---------------X------:~/bigqueryApp
$ gcloud app deploy
ERROR: (gcloud.app.deploy) Staging command [/google/google-cloud-sdk/platform/google_appENGIne/goroot-1.6/bin/go-app-stager
/home/---_---------/bigqueryApp/app.yaml /tmp/---------/---------]
failed with return code [1].
------------------------------------ STDOUT ------------------------------------
------------------------------------ STDERR ------------------------------------
2017/07/18 21:30:23 failed analyzing /home/---_---------/bigqueryApp:
cAnnot find package "google.golang.org/api/iterator" in any of:
($GOROOT not set)
/home/---_---------/gopath/src/google.golang.org/api/iterator (from $GOPATH)
/google/gopath/src/google.golang.org/api/iterator
GOPATH: /home/---_---------/gopath:/google/gopath
错误。该应用程序显然会导入迭代器包。我研究/尝试过等方法来修复这两种技术中的错误,但没有运气。如果有人有想法:如何解决这些错误,我想知道它们,我将不胜感激。
谢谢!
以上是大佬教程为你收集整理的在Google App Engine环境中托管的Golang网络应用出现错误;应用前端BigQuery全部内容,希望文章能够帮你解决在Google App Engine环境中托管的Golang网络应用出现错误;应用前端BigQuery所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。