如何部署 Scala/Akka 应用程序?

How to deploy a Scala/Akka application?

我正在开发一个订阅 Instagram 实时更新(用户)的应用程序。我需要提供一个 urlcallback 以接收用户更新。

 Curl -F 'client_id=CLIENT-ID' \
 -F 'client_secret=CLIENT-SECRET' \
 -F 'object=user' \
 -F 'aspect=media' \
 -F 'verify_token=myVerifyToken' \
 -F 'callback_url=http://YOUR-CALLBACK/URL' \
 https://api.instagram.com/v1/subscriptions/

现在我的应用程序在本地主机上 运行。 如何部署 Scala 应用程序以获得真正的 urlcallback?

有多种方法可以部署 Scala 应用程序。如果它是一个 Web 应用程序,那么您可以将该应用程序打包在一个 .war 文件中并部署在任何具有 Web server.The 的机器上另一种选择是您可以使用 AWS EC2 实例或 AWS Elasticbeanstalk 服务部署你的 .war file.In 无论如何,你的 urlCallback 将是 "http://:/"

  1. 通过修改 build.sbt 和 project/plugins.sbt 文件在您的项目中配置 sbt-native-packager。
  2. 使用 sbt-native-packager 构建您的应用程序,可以在您的本地计算机上或在像 Jenkins 这样的构建服务器上。这将创建一个 zip、docker 图像、rpm 或 Debian。如果您 运行 像 Ubuntu 这样的 Debian 类型服务器,Debian 文件将是最简单的选择。
  3. 将刚刚创建的文件上传到您的服务器,例如使用 scp 或 rsync。构建创建的文件位于您项目的目标目录中。
  4. 在您的服务器上安装您的应用程序。如果您 运行 正在使用像 Ubuntu 这样的 Debian 类型服务器并在构建过程中创建了一个 Debian 文件,一个简单的 dpkg -i 将安装您的应用程序。
  5. 在您的情况下,您应该安装像 nginx 这样的代理并将您的应用程序配置为 nginx 后端。参见:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

你可以使用 sbt-assembly 插件,在控制台中用 "sbt assembly" 创建一个 fat jar 然后执行 java -jar aplication.jar.