2015-11-17 55 views
1

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

感谢, 拉斯

回答

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

有一点要尝试,甚至可能是简单的只需拨打你的代码的库杜的部署后挂机(而不是试图用一个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,配置相对容易。