Küçük bir test uygulamasını Google App Engine'e (standart) dağıtmaya çalışıyorum. Satıcı kitaplıklarını eklediğimde bir hata alıyorum. Go satıcı kütüphanelerini Google App Engine ile kullanmak mümkün mü?
Bu
bazı içerik için% gcloud app deploy
Services to deploy:
descriptor: [/Users/matt/work/appenginetest1/src/hello/default/app.yaml]
source: [/Users/matt/work/appenginetest1/src/hello/default]
target project: REDACTED
target service: [default]
target version: [20170709t220721]
target url: REDACTED
Do you want to continue (Y/n)? y
Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 0 files to Google Cloud Storage ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9] Deployment contains files that cannot be compiled: Compile failed:
go-app-builder: build timing: 2×compile (210ms total), 0×link (0s total)
go-app-builder: failed running compile: exit status 2
main.go:6: can't find import: "github.com/julienschmidt/httprouter"
dağıtmak çalışırken alıyorum hatadır, bu ince dev_appserver.py üzerinden yerel sunucu Koşu $ GOPATH
% tree $GOPATH
/Users/matt/work/appenginetest1
└── src
└── hello
├── default
│ ├── app.yaml
│ └── main.go
├── glide.lock
├── glide.yaml
└── vendor
└── github.com
└── julienschmidt
└── httprouter
├── path.go
├── router.go
└── tree.go
ağaç işleri olduğunu. Ben gelen github.com dizini taşırsanız O bile bulut
% gcloud app deploy
ERROR: (gcloud.app.deploy) Staging command [/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/google_appengine/goroot-1.6/bin/go-app-stager /Users/matt/work/appenginetest1/src/hello/default/app.yaml /var/folders/nx/8w2_6q551cl50h3ff6lmy9s40000gn/T/tmp97Kiis/tmpe0MHQ0] failed with return code [1].
------------------------------------ STDOUT ------------------------------------
------------------------------------ STDERR ------------------------------------
2017/07/09 22:12:52 failed analyzing /Users/matt/work/appenginetest1/src/hello/default: cannot find package "github.com/julienschmidt/httprouter" in any of:
/Users/matt/work/appenginetest1/src/hello/vendor/github.com/julienschmidt/httprouter (vendor tree)
($GOROOT not set)
/Users/matt/work/appenginetest1/src/github.com/julienschmidt/httprouter (from $GOPATH)
GOPATH: /Users/matt/work/appenginetest1
--------------------------------------------------------------------------------
için bastırıyor önce
% rm -rf ~/work/appenginetest1/src/hello/vendor/github.com
hatalara çalıştırdıktan sonra olarak satıcı dizini bulma uygulaması motorun bir durumda benzemiyor src için satıcı, dağıtımı bir sorun olmadan çalışır.
app.yaml
service: default
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
main.go
package hello
import (
"fmt"
"net/http"
"github.com/julienschmidt/httprouter"
)
func init() {
router := httprouter.New()
router.GET("/hello/:name", Hello)
http.Handle("/", router)
}
func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
fmt.Fprintf(w, "Hello, %s!", ps.ByName("name"))
}
Ben süzülme işlemi çalıştırıldıktan sonra src satıcıya github.com dizini taşırsanız ben dağıtmak için bu projeyi alabilirsiniz. senin $GOPATH
ortam değişkeni aslında birden fazla yerde bir listesi (fazlası için https://golang.org/cmd/go/#hdr-GOPATH_environment_variable bakın)
Matt, bu soruna hiç akıl almaz bir çözüm buldunuz mu? –