我正在尝试使用Elastic Beanstalk将我的go restful服务器程序部署到EC2 Linux。该文档说我需要在根目录下创建一个Procfile。所以我做了。以下是步骤:
使用
构建我的go程序myapp.go$ go build -o myapp -i myapp.go
使用
在根目录下创建一个具有确切名称的Procfileweb: myapp
myapp.zip
文件。通过Elastic Beanstalk控制台上传到服务器。但我一直通过
获得Degraded
健康和警告
WARN流程终止时间超过10秒。
任何建议。顺便说一句,我尝试在来自Elastic Beanstalk示例库的简单application.go
zip文件中使用相同的procfile过程。它也没有用。
答案 0 :(得分:2)
我终于能够使用eb client使Go应用程序与Elastic Beanstalk一起部署。 EB需要满足以下条件:
#If we want to remove all 2.
ls = [2, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 6, 2]
# 1-filter takes two arguments(condition,sequence)
ls = list(filter(lambda x: x != 2, ls))
# 2-list comprehension
ls = [x for x in ls if x != 2]
。您将需要在主根目录中使用Procfile,
application.go
您将需要一个带有
的构建文件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存储库之后),它应该可以工作。我写了一个完整的教程,介绍如何在EB here上部署Gin应用程序。专门介绍使用Elastic Beanstalk进行部署的部分是here。