如何部署Azure的WebJob自动VSTS部署的一部分

问题描述 投票:9回答:4

有有我的天青WebJob,而无需点击右键自动部署并选择“发布为天青WebJob”每一次的方法吗?即当我检查,我的解决方案将被自动部署到Azure的门户网站webjob节

azure azure-devops azure-webjobs webjob
4个回答
4
投票

是的你可以。

布雷迪法莫替丁已经撰写了有关这一在blog post(还没有尝试过我自己)。

从我所收集的TL; DR;总结如下:

文件添加一个名为webjobs.props到Web应用程序项目或控制台应用程序,你的属性文件夹要发布

在此之后,所以ManagementCertificateSubscriptionIdPublishSettingsPath都充满了正确的数据编辑文件。

现在,你应该能够使用命令发布的文件

msbuild WebJobDemo.Web.csproj /p:DeployOnBuild=true /p:PublishProfile=WebJobDemo /p:VisualStudioVersion=12.0 /p:Password=asdfasdf

(注意,POST是VS2013写的)

之后,你应该看到这样的事情。 deployment output

当然,你可以在每次东西进行检查,以你的资料库VSTS(或与此有关的任何其他构建/部署工具)自动执行此。

如何做到这一点通过命令行VSTS A(而不是完整的)答案可以在这个答案中找到:https://stackoverflow.com/a/45703975/352640


3
投票

你可以做到这一点通过Continuous Integration Build(触发一次构建,检查)。

关于部署WebJob,您可以通过生成与/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"参数的Visual Studio生成任务的包。

然后通过Azure的应用程序部署任务进行部署。

更多信息:Deploying and Schedule Azure WebJobs from VSTS to Azure Web App


2
投票

当我试图做到这一点,我发现有对dotnet的核心项目,截至目前没有任何工具支持。所提出的webjobs.props / MSBuild的解决方案是特定的所有的dotnet框架。

不过,我也发现了一个webjob可以是任何的本地计算机上的可执行文件(可能是node.js的或只是一个批处理命令)。


关键是要了解如何WebJobs被主机识别:

  • 在Windows主机上的WebJob是(由我从用它进行试验聚集)只是包含如何启动webJob指令run.cmd文件。对于DOTNET芯这将是dotnet MyDll.dll %*%*来传递参数输出重定向等从主机向下)。
  • 现在根据羯羊工作是连续的或触发run.cmd文件需要位于无论是在app_data/jobs/continuous/[NameOfJob]app_data/jobs/triggered/[NameOfJob]。对于触发工作,你也可以使用下面描述settings.job一个here文件添加日程表。
  • 如果在适当的位置run.cmd它会被识别为WebJob

现在,使用VSTS无论运行时框架的请按照下列步骤部署webjob:

  1. 构建/如果有必要发布您WebJob得到可执行文件
  2. 一个run.cmd文件添加包含适当的启动说明您的webjob可执行文件旁边。你也可以在这里如果需要添加settings.job
  3. 创建文件夹层次app_data/jobs/[triggered/continuous]/[nameOfJob]和你的可执行文件复制到最低文件夹。确保run.cmd是直接在[nameOfJob]/目录下
  4. 邮编App_Data文件夹,这样的zip包中包含的整个层次
  5. 发布使用正常Azure的应用服务部署任务的zip文件(就像部署Web应用程序)

仅此而已。


-1
投票

在Visual Studio中,以与Web项目一起启用自动WebJobs部署右键单击Solution Explorer中的Web项目,然后单击:添加>现有项目如天青WebJob并创建WebJob。

更多详细信息可通过MS的文章中找到 - webjobs-dotnet-deploy-vs

© www.soinside.com 2019 - 2024. All rights reserved.