用于 Go 的 Elastic Beanstalk Procfile
Posted
技术标签:
【中文标题】用于 Go 的 Elastic Beanstalk Procfile【英文标题】:Elastic Beanstalk Procfile for go 【发布时间】:2017-09-07 16:47:15 【问题描述】:我正在尝试使用 Elastic Beanstalk 将我的 go restful 服务器程序部署到 EC2 Linux。该文件说我需要在根目录下创建一个 Procfile。所以我做了。步骤如下:
使用 myapp.go 构建我的 go 程序
$ go build -o myapp -i myapp.go
在根目录下创建一个具有确切名称的 Procfile
web: myapp
将 Procfile 和 myapp 映像压缩到 myapp.zip
文件中。
通过 Elastic Beanstalk 控制台上传到服务器。但我不断收到Degraded
健康和警告
WARN 进程终止时间超过 10 秒。
任何建议。顺便说一句,我尝试对来自 Elastic Beanstalk 示例库的简单 application.go
zip 文件使用相同的 procfile 过程。它也没有用。
【问题讨论】:
嗨!我也遇到了同样的问题,你解决了吗? 我也有同样的问题。有什么想法吗? 【参考方案1】:我终于能够使用eb client 使用 Elastic Beanstalk 部署一个 Go 应用程序。 EB 需要一些东西:
-
主文件的名称应为
application.go
。
确保您的应用正在侦听端口 5000。
您需要在主根目录中使用 Procfile
web: bin/application
你需要一个构建文件
make: ./build.sh
最后你需要一个build.sh
文件
#!/usr/bin/env bash
# Stops the process if something fails
set -xe
# All of the dependencies needed/fetched for your project.
# FOR EXAMPLE:
go get "github.com/gin-gonic/gin"
# create the application binary that eb uses
GOOS=linux GOARCH=amd64 go build -o bin/application -ldflags="-s -w"
然后,如果您运行 eb deploy
(在创建初始 eb 存储库之后),它应该可以工作。我为在 EB here 上部署 Gin 应用程序编写了一个完整的教程。专门关于使用 Elastic Beanstalk 进行部署的部分是 here。
【讨论】:
不错,不错的收获。更新。谢谢! 这些都不适合我,我不明白怎么回事。相同的设置:(以上是关于用于 Go 的 Elastic Beanstalk Procfile的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS 上使用 Elastic Beanstalk 的 Go Web 应用程序未在日志中显示输出
Elastic Beanstalk 上用于 Django 的 PostgreSQL