gpt4 book ai didi

azure - 清除应用服务实例并从 zip 文件上传新内容

转载 作者:行者123 更新时间:2023-12-04 23:15:48 25 4
gpt4 key购买 nike

在应用服务上,从 zip 文件部署新内容以替换任何现有内容的最佳方式是什么?

请注意:

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

有关更多信息,请参阅此处的讨论:https://github.com/projectkudu/kudu/issues/2367

最佳答案

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

最后我会指出一些问题。

步骤是:

  • 首先,将您的 zip 托管在云端。例如我这里有一个测试,您可以尝试一下:https://davidebbostorage.blob.core.windows.net/arm/FunctionMsDeploy.zip (请注意,此 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。我会把这件事报告给他们。现在,使用公共(public) zip 测试该过程,就像我上面的测试包一样。
  • 命令行比应有的更复杂。我还将向 CLI 团队询问此事。

关于azure - 清除应用服务实例并从 zip 文件上传新内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42894955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com