Azure 清除应用程序服务实例并从zip文件上载新内容

Azure 清除应用程序服务实例并从zip文件上载新内容,azure,deployment,azure-web-app-service,Azure,Deployment,Azure Web App Service,在App Service上,从zip文件部署新内容以替换任何现有内容的最佳方式是什么 请注意: 我在linux上运行 我不能用msdeploy 我不能用git 我不能使用VST 它需要简单 它不可能容易超时 它必须得到应用程序服务的所有订阅级别的支持 命令只能在其各自的操作完成后返回 我可以访问ARM模板 如果没有那么困难,我相信我可以将文件上传到存储blob 有关更多信息,请参见此处的讨论:有一个解决方案,它包括调用ARM msdeploy提供程序来部署云托管的zip包。这不需要在客户机上

在App Service上,从zip文件部署新内容以替换任何现有内容的最佳方式是什么

请注意:

  • 我在linux上运行
  • 我不能用msdeploy
  • 我不能用git
  • 我不能使用VST
  • 它需要简单
  • 它不可能容易超时
  • 它必须得到应用程序服务的所有订阅级别的支持
  • 命令只能在其各自的操作完成后返回
  • 我可以访问ARM模板
  • 如果没有那么困难,我相信我可以将文件上传到存储blob

有关更多信息,请参见此处的讨论:

有一个解决方案,它包括调用ARM msdeploy提供程序来部署云托管的zip包。这不需要在客户机上安装msdeploy,因此涉及msdeploy技术的事实主要是一个可以忽略的实现细节

最后,我会提出一些问题

这些步骤是:

  • 首先,将您的zip托管在云中。e、 我这里有一个测试,你可以使用:(注意,这个zip使用特殊的msdeploy包装,但是你也可以使用一个普通的旧zip来处理你的文件)
  • 然后使用cli 2.0运行以下命令,替换资源组、应用程序名称和zip url:

    az resource update --resource-group MyRG --namespace Microsoft.Web --parent sites/MySite --resource-type Extensions --name MSDeploy --set properties.packageUri=https://davidebbostorage.blob.core.windows.net/arm/FunctionMsDeploy.zip --api-version 2015-08-01
    
这将导致将包部署到您的
wwwroot
,并删除zip中不存在的任何现有内容。它的效率很高,因为它不会触及任何已经存在并且与zip中的文件相同的文件。因此,它比尝试清除所有内容并解压干净要快得多(但结果是相同的)

现在有两个问题:

  • 由于CLI 2.0中的错误,我无法传递包含等号的URL,这排除了SAS URL。我会向他们报告的。现在,使用公共zip测试这个过程,就像上面的测试包一样
  • 命令行比它应该的更复杂。我还将就此询问CLI团队

嗨,大卫,你说得完全正确,--set解析中有一个错误。计划在四月初修好。大卫,这是一个很好的答案!如何轻松构建该zip文件?该格式看起来有些“特殊”,我想知道它是否可以通过linux上的工具构建,或者我们是否需要自己“自制”该文件。如果是这样,是否有一些文档描述了文件格式所需的位,以及它们如何因不同类型的部署而改变,有没有办法避免使用az resource update命令并直接使用ARM模板来进行部署,因为我们在构建过程中一直在更新ARM模板?实际上,您应该能够使用完全正常的zip。我分享的那个确实很特别。尝试只压缩所有要部署的文件,不添加糖。是的,您可以使用ARM模板。请参阅示例。感谢您提出这个问题。几乎和我过去三天一直在想的一样!