有什么方法可以从 vNext 构建和部署运行 Azure WebJob?我为我的 Azure Web App 创建了一个手动触发的 WebJob。它当前正在工作,当它运行时,它会读取一个 dbscript.sql 文件并针对 Web App 的数据库执行它;这有效地更新了我的数据库。现在,我想在新建和部署 Web 应用程序时运行此 WebJob,但不确定如何在 vNext 构建定义中完成此操作。
谢谢,拉斯
有什么方法可以从 vNext 构建和部署运行 Azure WebJob?我为我的 Azure Web App 创建了一个手动触发的 WebJob。它当前正在工作,当它运行时,它会读取一个 dbscript.sql 文件并针对 Web App 的数据库执行它;这有效地更新了我的数据库。现在,我想在新建和部署 Web 应用程序时运行此 WebJob,但不确定如何在 vNext 构建定义中完成此操作。
谢谢,拉斯
您需要一种在部署时调用某些东西的方法。我不确定你现在是如何部署的,但让我们假设你正在使用 git。在后端,Azure 使用 Kudu 进行 git 部署。您应该能够自定义 Kudu 脚本以调用 powershell cmdlet 以将项目添加到队列中,然后触发 Web 作业。查找部署后挂钩使用 Git 或 Mercurial 将 ASP.NET 5 应用程序部署到 Azure Web 应用程序 以及Kudu 的部署后挂钩
可能更简单的一件事是简单地在 Kudu 的部署后挂钩上调用您的代码(而不是尝试使用网络作业),因为文档说
要添加部署后操作挂钩,您只需要 在下面放置一个脚本文件(.bat 或 .cmd) 站点\部署\工具\PostDeploymentActions。
如果您在本地进行部署,则在部署后使用 azure-cli 使用 azure-cli备忘单中的以下命令(您需要填写作业和站点的详细信息)触发 webjob
天蓝色网站作业开始
回到 webjob - 由于您无法通过 restful 方法触发 WebJob,因此您需要让您的 webjob 由新的队列消息触发(如果您选择走那条路线)。您可以通过 powershell 执行此操作。请查看以下将 Azure PowerShell 与 Azure 存储结合使用中的如何将消息插入队列, 这将反过来触发您的 Web 作业。
最后,您可以运行一个作为 ASP.NET 5 应用程序的 Web 作业,并根据需要触发它以执行您自己的操作。通过这种方式,您可以轻松地使用 web api 执行相同的操作 - 但在这种情况下,最好仅通过队列消息触发 webjob 或使用 azure-cli,配置相对简单。