我正在try 将Go应用程序部署到Elastic beanstalk(通过UI)

我所做的:

对于开发,我使用go版本go1.18.1 windows/amd64

在Elastic Beanstalk平台下,我看到:Go 1在64位Amazon Linux 2/3.5.1上运行

根据https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go

我的代码:

package main
import (
    "fmt"
    "net/http"
    "time"
)
func main() {
    http.HandleFunc("/", index)
    fmt.Println("Now serving!!!")
    http.ListenAndServe(":5000", nil)
}
func index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "My Res !!! %s", time.Now())
}

应用程序运行状况为"无数据".

最近的事件是"环境健康已从挂起状态转换为无数据状态.所有实例均未发送数据."

当我在chrome开发工具中查看并try 打开链接时,我只得到(失败的)net:ERR_CONNECTION_RESET."加载响应数据失败:找不到具有给定标识符的资源"

Potential Issues:

  • 当我查看配置选项卡时,我发现这个环境不是专有网络的一部分.这可能是个问题吗?

Some Potential Next Steps:

  • 在WSL上运行测试
  • 在独立的EC2上测试部署
  • try 通过CLI进行部署
  • try 包装在docker容器中并部署docker(虽然这实际上并不能解决我的问题,但我希望能够在没有docker的情况下部署)

推荐答案

我试图用你的代码复制你的问题,但是everything is fine.我的Electron 商务环境与你的代码完美配合.

我唯一能想到的是,我用linux创建了我的二进制文件,而你用了windows/amd64.我不认为那些二进制文件是可以互换的.

Go相关问答推荐

在保留额外参数的同时解封YAML

Go-Colly:将数据切片为POST请求

GO框架Echo中间件的使用

从使用Golang otelmux检测的Otel跟踪中获取trace_id

Golang Gorm Fiber - 如何将定义为别名的名称发送到索引模板?

在 Go 中解组编号的 XML 标签

如何测试光纤参数

如何使用 sync.WaitGroup 来执行所有的 goroutine?

errors.Wrap 和 errors.WithMessage 有什么区别

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

Golang 构建多平台问题

Dockerfile 问题 - 为什么找不到二进制 dlv - 没有这样的文件或目录

Golang并发写入多个文件

GqlGen - 在字段解析器中访问查询输入参数

如何在Golang中的差异函数中杀死命令Exec

GOENV 只能使用 OS 环境设置

在 VSCode 中使用命令行参数调试 Go 测试

map和struct golang的合并

是否存在一个Go泛型类型约束,该约束捕获了将类型用作映射中的键的能力?

全局记录(across packages)