我们有一个webjob,可以在部署后执行某些初始化任务。我们正在部署到Azure中的AppService,这一切都运行良好,包括部署webjob。
我目前能够登录Azure门户并手动执行/触发webJob,这是一种解决方法,但在部署中创建了一个手动步骤。
有谁知道如何使用CLI或类似方法从VSO版本脚本中触发运行。
答案 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 :(得分:0)
如果您使用的是VSTS Build&然后释放您可以使用Service Hooks。有很多VSTS事件可以触发Web Hook调用。可以通过单击WebJob->属性从门户网站获取运行Web作业的URL,并使用Basic Auth和属性页面中的部署凭据。