如何从vNext Build运行Azure WebJob?

时间:2015-11-17 23:30:59

标签: azure web-applications asp.net-core webjob

有没有办法从vNext构建和部署中运行Azure WebJob? 我为我的Azure Web App创建了一个WebJob,它可以手动触发。它当前正在工作,当它运行时,它会读取一个dbscript.sql文件并对Web App的数据库执行它;这有效地更新了我的数据库现在,我想在新构建和部署Web App时运行此WebJob,但不确定如何在vNext构建定义中完成此任务。

谢谢, 拉斯

1 个答案:

答案 0 :(得分:0)

您需要一种在部署时调用某些内容的方法。我不确定你现在如何部署,但我们假设你正在使用git。在后端,Azure使用Kudu进行git部署。您应该能够自定义Kudu脚本以调用powershell cmdlet将项添加到队列,然后触发webjob。查找部署后挂钩Deploying ASP.NET 5 application to Azure Web App using Git or Mercurialpost deployment hooks for Kudu

尝试的一件事甚至可能更简单,只需在Kudu的部署后挂钩上调用您的代码(而不是尝试使用webjob),因为文档说

To add a post deployment action hook you simply need 
to place a script file (.bat or .cmd) under
 site\deployments\tools\PostDeploymentActions.

如果您在本地进行部署,则在部署之后使用azure-cli使用以下命令触发webjob(您需要填写作业和站点的详细信息) 来自azure-cli cheat sheet

azure site job start

回到webjob - 由于你无法通过一个安静的方法触发WebJob,你需要通过一个新的队列消息触发你的webjob(如果你选择去那条路线)。你可以通过powershell做到这一点。 请查看如何在以下内容中将消息插入队列 Using Azure PowerShell with Azure Storage然后会触发你的webjob。

最后,您可以运行一个运行webjob的ASP.NET 5应用程序,并根据需要触发该操作以执行您自己的操作。通过该措施,您可以轻松地使用web api执行相同的操作 - 但在这种情况下最好通过队列消息触发webjob或使用azure-cli,配置相对容易。