触发VSO Release上的初始化webjob

时间:2016-12-22 13:34:54

标签: azure azure-devops azure-webjobs

我们有一个webjob,可以在部署后执行某些初始化任务。我们正在部署到Azure中的AppService,这一切都运行良好,包括部署webjob。

我目前能够登录Azure门户并手动执行/触发webJob,这是一种解决方法,但在部署中创建了一个手动步骤。

有谁知道如何使用CLI或类似方法从VSO版本脚本中触发运行。

2 个答案:

答案 0 :(得分:0)

您可以通过REST API(Kudu)触发WebJob。

    param(
[Parameter(Mandatory=$true)]
[string]$websiteName,
[Parameter(Mandatory=$true)]
[string]$webjobName
)

$website = Get-AzureWebsite $websiteName
$publishingUsername = $website.PublishingUsername
$publishingPassword = $website.PublishingPassword
$base64AuthInfo = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $publishingUsername, $publishingPassword)))

write-host Attempting to trigger backup job;
Invoke-RestMethod -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Uri https://$websiteName.scm.azurewebsites.net/api/jobs/triggered/$webjobName/run -Method Post -ContentType application/json

#wait for webjob to complete - you may have a nicer way to know the webjob has completed
Start-Sleep -Seconds 5

更多信息,您可以参考这篇文章:How to remotely trigger an Azure web job

在构建/发布期间运行PowerShell的步骤

  1. 将Azure PowerShell步骤/任务添加到构建/发布定义

  2. 选择Azure Classic

  3. 选择订阅

  4. 选择PowerShell脚本文件路径

  5. 指定参数

  6. enter image description here

答案 1 :(得分:0)

如果您使用的是VSTS Build&然后释放您可以使用Service Hooks。有很多VSTS事件可以触发Web Hook调用。可以通过单击WebJob->属性从门户网站获取运行Web作业的URL,并使用Basic Auth和属性页面中的部署凭据。

enter image description here