我在Go App Engine应用程序中有一个推送任务队列.当我们尝试将任务排入测试时,无论出于何种原因,任务总是返回404.
我们的app.yaml:
runtime: go
api_version: go1.9
handlers:
- url: /worker/.*
script: _go_app
login: admin
- url: /.*
script: _go_app
Run Code Online (Sandbox Code Playgroud)
实际的任务调用:
func Handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
t := taskqueue.NewPOSTTask("/worker", map[string][]string{"key": {"val"}})
_, err := taskqueue.Add(ctx, t, "")
if err != nil {
log.Errorf(ctx, "Failed to add task");
}
fmt.Fprintf(w, "Success");
}
Run Code Online (Sandbox Code Playgroud)
一个仍然不完整的处理程序,但它存在!
func Worker(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
log.Infof(ctx, "Worker succeeded")
}
Run Code Online (Sandbox Code Playgroud)
最后,证明我们实际上已经添加了路由器的路径:
func init() {
http.HandleFunc("/", Handler)
http.HandleFunc("/worker", Worker)
}
Run Code Online (Sandbox Code Playgroud)
当我们实际运行测试时,我们总是得到以下日志记录输出: …
根据文档:
入口点
可选。通过在您的应用程序启动时执行 entrypoint 命令来覆盖默认启动行为。为了让您的应用接收 HTTP 请求,入口点元素应包含一个命令,该命令启动一个侦听端口 8080 的 Web 服务器。
我将如何配置它?在任何地方都找不到详细信息。我可以这样做吗?
entrypoint: go run main.go fooArg --bar-flag=1
Run Code Online (Sandbox Code Playgroud)
我没有云构建文件,只有 app.yaml。那么入口点到底有什么作用呢?当应用引擎到达入口点部分时,程序是否已经编译?
谢谢
嘿,有谁知道为什么Go-lang的Google Cloud Endpoints不在Google App Engine的标准环境中?它似乎只是为Python/Java正式支持/记录.
是因为
A)Cloud Endpoints很快/有一天会来Golang.
B)云端点不是那么好,所以它不会在Golang中实现.
C)别的东西.
这是"非标准"的lib https://github.com/GoogleCloudPlatform/go-endpoints,但它在9个月内没有更新.
我正在尝试在GAE项目中选择Python和Golang,而对Cloud Endpoints缺乏支持让我停下来.
提前致谢.
google-app-engine go google-cloud-endpoints google-cloud-platform google-app-engine-go
我尝试将Go应用程序部署到App Engine。我有以下构建错误:
Starting Step #1 - "builder"
Step #1 - "builder": Pulling image: gcr.io/gae-runtimes/go111_app_builder:go111_1_11_2_20181111_RC00
Step #1 - "builder": go111_1_11_2_20181111_RC00: Pulling from gae-runtimes/go111_app_builder
Step #1 - "builder": Digest: sha256:51fb36bfa16e7013356867c3a3972986084df93e56258fc258579a5799f0436e
Step #1 - "builder": Status: Downloaded newer image for gcr.io/gae-runtimes/go111_app_builder:go111_1_11_2_20181111_RC00
Step #1 - "builder": 2018/11/24 18:13:29 Your app is not on your GOPATH, this build may fail.
Step #1 - "builder": 2018/11/24 18:13:29 Building from Go source in /tmp/staging477638319/srv, with main package at ./...
Step #1 - "builder": 2018/11/24 18:13:29 Building /tmp/staging477638319/srv, …Run Code Online (Sandbox Code Playgroud) 当我想将 Go 应用部署到 App Engine 时,我发现必须安装 app-engine-go。甚至还说安装是在新窗口上,没有弹出窗口。
https://github.com/Chih ChengHsieh/ProblemsScreenShot/blob/master/image-2.png
C:\go-work\src\orderFunc>gcloud app deploy
The component [app-engine-go] is required for staging this
application.
Restarting command:
$ gcloud components install app-engine-go
Installing component in a new window.
Please re-run this command when installation is complete.
$ gcloud app deploy
Run Code Online (Sandbox Code Playgroud)
当我运行命令gcloud components install app-engine-goand时gcloud components update,它显示:
https://github.com/Chih ChengHsieh/ProblemsScreenShot/blob/master/image.png
C:\go-work\src\orderFunc>gcloud components install app-engine-go
Restarting command:
$ gcloud components install app-engine-go
C:\go-work\src\orderFunc>gcloud components update
Restarting command:
$ gcloud components update
C:\go-work\src\orderFunc>gcloud components …Run Code Online (Sandbox Code Playgroud) google-app-engine go google-cloud-platform gcloud google-app-engine-go