我目前正在尝试将golang包部署到AWS ElasticBeanstalk,它将通过cron.yaml生成SQS消息。当我从我的应用中提取日志时,表明我的go应用正在拒绝SQS的POST请求。
/var/log/nginx/error.log:
* 156 connect()失败(111:连接被拒绝),同时连接到上游,客户端:127.0.0.1,服务器:,请求:“ POST / runTask HTTP / 1.1”,上游:“ http://127.0.0.1:5000/runTask”,主机: “本地主机”
/var/log/nginx/access.log:
[14 / Jul / 2019:19:15:00 +0000]“ POST / runTask HTTP / 1.1” 502173“-” “ aws-sqsd / 2.4”“-”
我目前正在运行EBS提供的所有默认设置的环境。我注意到EBS将ec2实例放入我的数据库VPC中,但我不认为这会造成麻烦。
以下是go服务器正在运行的代码:
application.go:
func buildHandler(res http.ResponseWriter, req *http.Request) {
go run()
res.WriteHeader(http.StatusOK)
res.Write([]byte(""))
}
func main() {
http.HandleFunc("/runTask", buildHandler)
http.ListenAndServe(":5000", nil)
}
cron.yaml:
version: 1
cron:
- name: "Run Build task"
url: "/runTask"
schedule: "*/5 * * * *"
我对整个AWS堆栈还很陌生,我很想听听我所缺少的内容,或者为什么它无法按我期望的方式工作。