有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重头戏2:如何将dist应用程序部署到Windows Azure云服务(而不是VM)

问题:将Play app部署到Windows Azure Cloud Services(而不是虚拟机)的方式是什么

背景:我需要将小型应用程序部署到Azure,我希望使用通用的dist打包方法(它创建包含所有必需的*.jar文件的文件夹+可以在安装了JDK的任何系统上运行的启动脚本)。需要补充的是,我不想使用Starter Kit for Java+战争包装作为。。。我正在上工作,所以我需要购买/精益下一台带有Windows的机器,仅用于这一项任务(该工具包仅适用于Win)

不幸的是,我没有Azure服务的经验。如果我把东西混得太多,或者如果没有战争+装备是不可能的,请让我也知道;)


共 (2) 个答案

  1. # 1 楼答案

    据我所知,云服务(PaaS)包只能从Windows制作,所以目前需要Windows机器

    VisualStudio可能是创建您自己的云服务的最简单工具,但您需要学习VS和制作Azure应用程序的非标准方法。这可能是一项相当大的投资

    您可以从Eclipse中的Azure插件执行cmd安装和启动的应用程序(不仅仅是基于战争的JavaEE应用程序)。如果您已经了解Eclipse,那么这是一种快速构建云服务包的方法

    如果选择Eclipse方式,则可以通过以下方式构建自己的应用程序映像:

    1. 创建一个新的Azure项目,不要指定应用程序服务器和JVM
    2. 看看示例启动脚本(基本上它解压缩jvm、应用程序服务器、将war移动到deploy文件夹并启动应用程序服务器)。应用服务器和其他应用程序的步骤类似:安装并启动它,即启动。cmd文件可以为您的应用程序执行此操作
    3. 制作类似的脚本来安装应用程序:解压缩jvm、应用程序或包管理器。将每个元素放在正确的位置,然后启动应用程序(不要忘记通过start命令调用它,以确保启动脚本完成)

    当您了解了它的工作原理后,您应该尝试通过将归档文件放在Blob支持中并在启动时下载它们来使Azure软件包更加灵活。相信我,这将提高开发效率。在第二步中,您可以通过下载可以在ServiceConfiguration中指定的其他脚本或配置文件来配置启动脚本。csfg文件允许您限制Windows计算机的启动

  2. # 2 楼答案

    在比利时举行的Devxx会议上,Steve Marx创建了一个Scala应用程序,该应用程序使用运行在Windows Azure上的Play框架。它使用packageanddeploy(打包Azure应用程序的简单支架),而不是使用Java初学者工具包

    阅读他的博客文章“Using Scala and the Play Framework in Windows Azure”,或者看看github上的项目

    但是有一个小问题,这也使用了cspack。exe我认为在Mac上没有其他选择。cspack用于创建要部署到Windows Azure的包。现在我不认为这是一个表演的障碍

    在他的博客文章中,史蒂夫谈到了WorkerRole\downloads的东西。ps1下载Java和Play框架的文件。您可以扩展它来下载您的应用程序(打包在zip文件中)。这样,您的包将是非常静态的(只有几个脚本,它将下载acutal应用程序),并且您不需要在每次部署时都运行cspack

    现在,如果您不想购买Windows计算机,可以执行以下操作:

    1. 根据史蒂夫的博客文章,修改下载内容。ps1也可以从blob存储下载您的应用程序
    2. 将你的应用上传到blob存储
    3. 创建虚拟机
    4. 使用RDP连接到该VM并安装Azure SDK、工具等
    5. 使用cspack(查看packageanddeploy项目)创建一个包,以创建包含所有脚本的静态包
    6. 删除虚拟机,现在你有了这个包,你就不再需要它了
    7. 将包部署到云服务,这将运行您的脚本,触发您的应用程序下载,您将拥有一个正在运行的应用程序
    8. 每次需要部署时,只需将应用程序的新版本上载到存储帐户,然后重新部署静态软件包,而无需使用Windows