https://cloud.google.com/appengine/docs/go/users/
我在这里看到他们没有指定使用任何路由器...:https://cloud.google.com/appengine/docs/go/config/appconfig
在Golang中使用Google Cloud时,它会指定app.yaml
中的每个处理程序。这是否意味着我们不应该使用第三方路由器以获得更好的性能?我希望Gorilla Mux
用于路由器......如果我将其他路由器用于Google App Engine Golang App,它会如何工作?
请告诉我。谢谢!
答案 0 :(得分:12)
您可以将Gorilla Mux与App Engine配合使用。方法如下:
在app.yaml的处理程序部分的末尾,添加一个脚本处理程序,将所有路径路由到Go应用程序:
application: myapp
version: 1
runtime: go
api_version: go1
handlers:
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /.*
script: _go_app
_go_app
脚本是App Engine编译的Go程序。模式/.*
匹配所有路径。
App Engine生成的主要功能会将所有请求分派到DefaultServeMux。
在init()函数中,创建并配置Gorilla Router。使用DefaultServeMux注册Gorilla路由器以处理所有路径:
func init() {
r := mux.NewRouter()
r.HandleFunc("/", homeHandler)
// The path "/" matches everything not matched by some other path.
http.Handle("/", r)
}