Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌应用引擎Golang返回404页未找到_Google App Engine_Nginx_Go - Fatal编程技术网

Google app engine 谷歌应用引擎Golang返回404页未找到

Google app engine 谷歌应用引擎Golang返回404页未找到,google-app-engine,nginx,go,Google App Engine,Nginx,Go,app.yaml runtime: go api_version: go1 handlers: - url: /.* script: _go_app 我的main.go文件: 包干管 import ( "fmt" "github.com/cbll/stockmarket-service/lib" "net/http" "log" "google.golang.org/appengine" ) func main() { appengine

app.yaml

runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app
我的
main.go
文件:

包干管

import (
    "fmt"
    "github.com/cbll/stockmarket-service/lib"
    "net/http"
    "log"
    "google.golang.org/appengine"
)

func main() {
    appengine.Main()
    fmt.Println("Starting the application...")
    // Run application until halted
    for {
        go lib.GetStockData()
        StockController()
    }
}


// Expose controller at http://localhost:8080/
func StockController() {
    var port = ":8080"

    fmt.Println("Starting web server listening on port", port)

    http.HandleFunc("/", lib.StocksHandler)
    log.Fatal(http.ListenAndServe(port, nil))
}
如果我注释掉
appengine.Main()
,我可以在本地运行它,而不会出现任何问题。它从端口8080开始

gcloud app deploy
工作正常,将正确地将应用部署到谷歌云

但是,
gcloud app browse
将我带到该站点,返回
404未找到页面
。事实上,使用
gcloud应用程序日志检查日志时会读到:

2018-01-06 00:04:18 default[20180106t010155]  + exec app
2018-01-06 00:08:32 default[20180106t010155]  "GET /" 404
我有点不确定在哪里进行故障排除。它在本地工作,并指定:8080作为它应该的端口(据我所知?),并导入appengine main方法。我会错过什么

编辑:

将处理程序更改为

-url:///code>

结果:

2018-01-06 00:17:30 default[20180106t010915]  "GET / HTTP/1.1" 404

。。标准环境提供主程序并运行http服务器。将初始化代码放入init()函数中。不要使用主程序包

package app

import (
    "github.com/cbll/stockmarket-service/lib"
    "net/http"
)

func init() {
    go lib.GetStockData()
    http.HandleFunc("/", lib.StocksHandler)
}

标准环境提供主程序并运行http服务器。将初始化代码放入init()函数中。不要使用主程序包

package app

import (
    "github.com/cbll/stockmarket-service/lib"
    "net/http"
)

func init() {
    go lib.GetStockData()
    http.HandleFunc("/", lib.StocksHandler)
}

你的
脚本:
在你的
应用程序中。yaml
应该指向
main.go
,但谷歌的文档说明:
对于go应用程序,脚本的值应该始终为_go\u app。
?我的错,刚刚又查过了。你说它在没有
appengine.Main()
的情况下在本地运行很好,上传时会发生同样的情况吗?不,如果没有
appengine.Main()
的情况下上传,你会得到错误:
解析器:找到了带有函数Main的顶级包Main,但Main没有调用appengine.Main()您的应用程序引擎是否使用灵活的环境?在appengine github上,它声明它与该环境不兼容:你的
应用程序中的
脚本:
。yaml
应该指向
main.go
,但谷歌的文档声明:
对于go应用程序,脚本的值应该始终为_go\u app.
?我的错,刚刚又查过了。你说它在没有
appengine.Main()
的情况下在本地运行很好,上传时会发生同样的情况吗?不,如果没有
appengine.Main()
的情况下上传,你会得到错误:
解析器:找到了带有函数Main的顶级包Main,但Main没有调用appengine.Main()您的应用程序引擎是否使用灵活的环境?在appengine github上,它声明它与该环境不兼容:它现在返回JSON!不过,它是空的
lib.GetStockData()
未运行吗?它没有记录它应该记录的内容。虽然http服务器现在响应200,但它从不运行我的
fmt.Println
命令。。奇怪?这个答案也适用于我在GCP中的AppEngine上部署我的应用程序。在玩了4天这些脚本之后,这终于是有效的解决方案(也是web上唯一一个与AppEngine相关的解决方案)。多谢各位+1它现在返回JSON!不过,它是空的
lib.GetStockData()
未运行吗?它没有记录它应该记录的内容。虽然http服务器现在响应200,但它从不运行我的
fmt.Println
命令。。奇怪?这个答案也适用于我在GCP中的AppEngine上部署我的应用程序。在玩了4天这些脚本之后,这终于是有效的解决方案(也是web上唯一一个与AppEngine相关的解决方案)。多谢各位+1.