Aws Elastic Beanstalk部署Akka应用程序

时间:2017-06-29 23:39:53

标签: scala amazon-web-services sbt akka

我有一个简单的akka​​ Http服务器:

import akka.http.scaladsl.model.{ContentTypes, HttpEntity}
import akka.http.scaladsl.server.HttpApp
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.settings.ServerSettings
import com.typesafe.config.ConfigFactory

object MinimalHttpServer extends HttpApp {
  def route =
    pathPrefix("v1") {
      path("subscribe" / Segment) { id =>
        get {
          complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, s"<h1>Hello $id from Akka Http!</h1>"))
        } ~
        post {
          entity(as[String]) { entity =>
            complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, s"<b>Thanks $id for posting your message <i>$entity</i></b>"))
          }
        }
      }
    }
}

object MinimalHttpServerApplication extends App {
  MinimalHttpServer.startServer("localhost", 8088, ServerSettings(ConfigFactory.load))
}

我使用Sbt native Packager构建通用zip。当我将我的应用程序部署到Aws Elastic Beanstalk时,我收到此错误:

[实例:i-0a846978718d54d76]实例上的命令失败。返回码:1输出:(TRUNCATED)... xml_2.11-1.0.5.jar无法启动应用程序,因为源包不包含名为application.jar或Procfile的文件。无法启动应用程序,因为源包不包含名为application.jar或Procfile的文件。挂钩/opt/elasticbeanstalk/hooks/appdeploy/pre/01_configure_application.sh失败。有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log。

任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

似乎AWS Elastic Beanstalk要求您的.zip包含名为application.jar的文件或Procfile,而sbt-native-packager创建的zip看起来不一样。

似乎sbt-native-packager不支持Elastic Beanstalk期望的格式,但GitHub issue 632显示了在该方向上完成的一些工作。