将 Scala Play 应用程序部署到 Heroku:一步一步的指南

作者多年未接触 Java 后开始探索 Scala 及 Play Framework,本文介绍相关内容:

  • 示例应用介绍:以 Play Scala REST API 示例为基础,克隆并修改用于 Heroku 部署,展示关键代码点,如用 case class 建模资源、清晰集中的路由定义、简洁的控制器、使用隐式值处理 JSON 等,还体现了 Scala 现代 expressive 语法。
  • 本地运行应用:确保本地安装 Java 和 sbt,运行sbt run后本地服务器在端口 9000 监听,可通过 curl 测试 API,如获取和创建博客文章。
  • 准备部署到 Heroku

    • 理解 AllowHostsFilter,在conf/application.conf中修改允许的主机列表,包括本地和 Heroku 应用 URL。
    • 设置 Play 秘密,在conf/application.conf中设置默认秘密密钥和从环境变量PLAY_SECRET获取秘密。
    • 区分sbt run和运行编译后的二进制文件,sbt stage编译后的版本更内存高效,避免 Dyno 崩溃。
    • 选择 Heroku 是因为其零配置部署,自动处理依赖和编译。
  • 部署应用到 Heroku

    • 安装 Heroku CLI 并登录,创建新的 Heroku 应用。
    • 创建Procfile,指定启动命令为编译后的二进制文件,并设置动态端口。
    • 创建system.properties文件,指定 JDK 版本。
    • 设置 Heroku 应用配置变量PLAY_SECRETPLAY_ALLOWED_HOSTS
    • 推送代码到 Heroku,Heroku 自动处理构建和部署。
    • 测试应用,通过 curl 验证 API 正常工作。
  • 总结:从 Java 转向 Scala 没那么困难,Scala 语法简洁现代,Play 工具有学习曲线但可接近,部署到 Heroku 有一些注意点但过程简单可重复,首次 Scala 构建部署体验良好,鼓励尝试。
阅读 10
0 条评论