这是一个深入的问题,因此我将尽力解释。
我在Go中构建了一个小型API服务,我正尝试使用相对较新的AWS Elastic Beanstalk Docker 支持将其部署到AWS 。
这是我所做的事情(代码都是开源的,因此您可以根据需要进行操作):
$ git clone https://github.com/rdegges/ipify-api.git
$ cd ipify-api
$ git fetch origin aws:aws
$ git checkout aws
$ eb init
$ eb create
$ eb deploy
这将使用弹性beantalk来创建一个新应用(与docker一起使用)并进行部署。
如果然后运行eb open
以打开我的Web应用程序,则会看到显示的公共IP地址(这是正确的行为),因此我知道我的应用程序正在运行/正在运行。
现在,在我的源代码中,我有几行调试输出:
fmt.Println("WOOOOOOOOOOOO")
上面的语句仅向控制台输出“ WOO…”。每次发出新请求时都会运行该程序。
不幸的是,当我运行eb logs
查看实例日志时,此调试行从不显示-我也不知道为什么。
我已经尝试过打印到STDERR,打印到STDOUT,等等–但是我绝对无法获得任何输出。
我搜寻了互联网,寻找解决方案,但尚未找到任何解决方案。
我认为import "github.com/rdegges/ipify-api/api"
是从Github上的副本构建的,而不是从本地副本构建的。api
程序包的最新提交没有多余的fmt
语句。另外,log
in语句和包中的语句一样main.go
正常。尝试验证软件包是从您认为的来源中构建的。fmt.Fprintf
api
api
编辑6/1/2015:
我所有的测试都表明这是源于内部子包的问题,而远程服务对此有问题。该api
软件包不是从本地副本生成的。fmt.Print
从可以正常使用main.go
,并且GetIP
从api
软件包移动到main
软件包可以fmt
在Web请求期间将其打印到stdout。
基本上,对本地api
子包所做的所有更改都将被忽略。
EB日志可能会说明正在远程下载哪些软件包。我的做到了。
我不是Godep专业人士,所以也许Godep专业人士可以详细说明。但是FWIW似乎与这个问题切线相关。不使用构建远程服务也可能是一个问题godep go build
,但是就像我说的那样,我不是Godep专业人士,所以我不确定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句