作为 Azure 的新手,我正在寻找一种部署应用程序的好方法。目前的情况是,我们使用 Jenkins 在网络内构建 Java 应用程序。每次成功构建都应自动发布到 Azure 上的生产环境。除了 https 之外,我们不能从网络向 Azure 打开任何端口。更糟糕的是,我们需要通过 http/s 代理。请注意,我们只能部署已编译的 war 文件。不允许在我们的网络之外发布任何代码。
在我们的案例中,有哪些选择?
答案1
你的问题其实不是 WAR 文件,这很容易处理。一旦你设置了一个 Azure Web 应用程序运行 Java如果您将 WAR 放在 Azure Web 应用程序的根目录中,那么它将被加载和部署。
您将遇到的问题是将其上传到 Azure,并且仅允许出站 https。您无法使用 Azure Web Apps 内置的任何部署机制,因为它们不在端口 443 上运行。
我唯一能想到的就是让您的构建过程将文件上传到 Azure 存储,它确实使用出站 443。然后,您可以创建一个 Azure 自动化 Powershell 作业,该作业从存储中获取文件并使用 Web 部署或 ftp 或类似方式发布到 Web 应用程序。您可以让您的构建过程通过使用 webhook 设置自动化作业来触发此操作,当构建服务器在 443 上运行时,您可以从构建服务器中点击该作业。