Google BigQueryプロジェクトをフロントエンドするGolang Webアプリケーションを作成しました。アプリにはこれらのインポートがありますGoogle App Engine環境でホストされているGolang Webアプリケーションでエラーが発生しました。アプリのフロントエンド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の展開のために
は、私が最初に私はのgcloudのinitを実行し、ローカルのGoogle Cloud SDKをインストールして、私は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
パッケージをインポートしようとしましたが、別のコンパイルエラーが発生しました。それはthis pageがそこに行かないと言っているように見えます。次に、私はthis vidのアイデアを元のアプリケーションを使って試してみました。元のmain()関数をmain.goに保ちました。クラウドシェルウィンドウで
gcloud app deploy
と入力しました。私はこれを持っています
$ [email protected]:~/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
エラーです。アプリはイテレーターパッケージを明確にインポートします。両方のテクニックでバグを修正するために私は研究/実験/などを行いましたが、運はありません。誰かがアイデアを持っている場合、これらのバグを修正する方法を知りたいのですが、私は感謝しています。
ありがとうございました!