Azure资源管理器模板-将jhipster .war文件和web.config部署到Web应用程序

时间:2019-07-18 11:04:44

标签: jhipster azure-resource-manager arm-template azure-deployment azure-template

我试图通过ARM模板将现有的.war编译的Java应用程序(jhipster)部署到我的Azure Web应用程序中。我设法在没有ARM模板的情况下手动部署了.war文件,并且一切正常,但是直到现在,这仍然很费劲,我还没有设法通过ARM模板来使其工作。

对于我的.war部署的简短背景:我遵循以下答案: Can I deploy a jhipster 5.0.0-beta.0 application in azure?

这个问题是我的工作同事提出的,@ Peter Pan的回答非常好!现在,我正在尝试制作一个部署脚本,该脚本可以部署整个解决方案及其所有服务。

除了必须在wwwroot中部署的.war文件之外,我实际上还需要在与.war文件相同的文件夹中部署web.config(在上面的链接中进行了介绍),两者都位于wwwroot中。我不知道该怎么办,而且我当前的Webapp部署代码未在Webapp主机中复制.war文件。部署成功,但是它只是一个空的默认Web应用程序,该Web应用程序的文件浏览器/ FTP上不存在.war文件。

这是描述我的Web应用程序的JSON:

    {
        "type": "Microsoft.Web/sites",
        "apiVersion": "2016-08-01",
        "name": "[variables('webAppName')]",
        "location": "West Europe",
        "dependsOn": [
            "[resourceId('Microsoft.Web/serverfarms', variables('serverfarms'))]"
        ],
        "kind": "app",
        "properties": {
            "enabled": true,
            "hostNameSslStates": [
                {
                    "name": "[concat(variables('webAppName'), '.azurewebsites.net')]",
                    "sslState": "Disabled",
                    "hostType": "Standard"
                },
                {
                    "name": "[concat(variables('webAppName'), '.scm.azurewebsites.net')]",
                    "sslState": "Disabled",
                    "hostType": "Repository"
                }
            ],
            "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('serverfarms'))]",
            "reserved": false,
            "scmSiteAlsoStopped": false,
            "clientAffinityEnabled": true,
            "clientCertEnabled": false,
            "hostNamesDisabled": false,
            "containerSize": 0,
            "dailyMemoryTimeQuota": 0,
            "httpsOnly": false,
            "resources": [
                {
                    "apiVersion": "2014-06-01",
                    "name": "MSDeploy",
                    "type": "Extensions",
                    "dependsOn": [
                        "[concat('Microsoft.Web/Sites/', variables('webAppName'))]",
                        "[concat('Microsoft.Web/Sites/', variables('webAppName'), '/config/web')]"
                    ],
                    "properties": {
                      "packageUri": "[variables('pathToWarFile')]"
                    }
                }
            ]
        }

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

看看这个模板:https://github.com/Azure/azure-quickstart-templates/blob/master/201-web-app-github-deploy/azuredeploy.json

您需要它告诉巫婆存储库中的应用程序以提取应用程序文件。为此,您可以使用GitHub,Azure DevOps或任何其他存储库。如果存储库受保护,则需要更多设置。

其他解决方案是使用AzureDev Ops部署模板,以及部署teplate释放应用程序时。

  • 创建一个发布管道。
  • 在第一步中部署模板
  • 完成模板后,在步骤2中释放应用程序。

我希望这对您有帮助