使用“Azure app service deploy”部署webjob并在目标选项中删除其他文件

时间:2017-03-16 22:26:21

标签: azure-webjobs azure-pipelines-release-pipeline

我正在尝试在VSTS上的单个版本定义中部署多个webjobs。

我的问题是我的webjobs中包含的文件可以更改(添加/更新/删除)。默认情况下,使用任务Azure app service deploy部署新版本时,不会从服务器中删除现有文件。这导致我的webjob中的文件被弃用,停留在我的服务器上并导致错误。

为了解决我的问题,我尝试启用“删除目标位置的其他文件”。但由于我必须在单独的任务中部署每个webjob(Azure app service deploy仅支持单个Web包),因此每个连续部署都会删除先前部署的webjob的文件。

如何轻松解决这个问题?

目前我唯一的猜测是通过powershell连接到网络应用程序,并使用命令行开关Remove-AzureWebsiteJob删除现有的webjob。
但我对此的主要关注是删除整个webjob,我认为这也将删除他们的日志和执行历史......

1 个答案:

答案 0 :(得分:1)

使用wawsdeploy tool,有一种方法可以做到这一点,但没有详细记录。

从Chocolatey获得该工具后:

  • 从门户网站下载您应用的发布资料。
  • 转到您要为特定WebJob部署文件的文件夹。
  • 运行:wawsdeploy . c:\folderwithyourprofile\YourApp.PublishSettings /t D:\home\site\wwwroot\App_Data\jobs\continuous\YourJob /d

此处,/d会导致它删除该一个文件夹中的所有未知文件 ,因此它不会触及您的其他WebJobs。您可以尝试在没有/d的情况下首先运行它以熟悉该工具,并确保在开始删除文件之前将文件放在正确的位置。

请注意,只使用msdeploy命令行就可以执行类似的操作,但它需要一组极其复杂的参数。有关详细信息,请参阅我的post