gpt4 book ai didi

powershell - 使用 PowerShell 创建计划的 Azure WebJob

转载 作者:行者123 更新时间:2023-12-04 01:33:30 26 4
gpt4 key购买 nike

我正在尝试创建一个 Azure WebJob 以将 BrokeredMessage 发送到 Azure ServiceBus 主题,创建和发送消息的实际操作很简单,但我一直无法找到一种自动化方法创建计划的 WebJob。

自动化工作流程应按如下方式工作:

  1. 创建新的 Azure 网站[完成]
  2. 创建一个新的触发式 Azure WebJob,上传 PS1 文件[完成]
  3. 创建新的 Azure Scheduler 作业集合[经过验证的概念]
  4. 创建一个新的 Azure 调度程序作业来触发 WebJob

Azure 管理门户为此功能提供了一个很好的 UI,它在幕后在选定的网站中创建一个 Azure WebJob、一个 Azure 计划程序作业集合和一个 Azure 计划程序作业:

Screenshot: Step 2 of New Scheduled Web Job task in Azure Management Portal

似乎没有类似的机制可用于使用 Azure 服务管理 PowerShell 模块创建计划的 Azure WebJob。当然可以创建新的 WebJobs , Azure Scheduler CollectionsJobs - 但是我不知道 Azure 调度程序将发布到哪个 URL 或存储队列来调度 Azure WebJobs。

最佳答案

Azure Scheduler 和 Azure WebJobs 之间存在密切关系。具体来说,Azure WebJobs 没有任何内部调度支持,WebJobs 依赖 Azure Scheduler 来调用 *.scm.azurewebsites.net 网站。 Relationship between Azure WebSites, WebJobs and Scheduler

因此,可以使用这些服务的 PowerShell cmdlet 来设置 Azure WebJobs,以便使用 Azure Scheduler 按计划触发。

$location = "North Europe";

$site = New-AzureWebsite -Location $location `
-Name "amido-test-website";
$job = New-AzureWebsiteJob -Name $site.Name `
-JobName "amido-test-job" `
-JobType Triggered `
-JobFile ~\Desktop\test.zip;
$jobCollection = New-AzureSchedulerJobCollection `
-Location $location `
-JobCollectionName "amido-test-job-collection";
$authPair = "$($site.PublishingUsername):$($site.PublishingPassword)";
$pairBytes = [System.Text.Encoding]::UTF8.GetBytes($authPair);
$encodedPair = [System.Convert]::ToBase64String($pairBytes);
New-AzureSchedulerHttpJob `
-JobCollectionName $jobCollection[0].JobCollectionName `
-JobName "test" `
-Method POST `
-URI "$($job.Url)\run" `
-Location $location `
-StartTime "2014-01-01" `
-Interval 1 `
-Frequency Minute `
-EndTime "2015-01-01" `
-Headers @{ `
"Content-Type" = "text/plain"; `
"Authorization" = "Basic $encodedPair"; `
};

这有点啰嗦,所以用简单的英语来说,上面的脚本执行以下操作:

  1. 创建新的 Azure 网站。
  2. 创建并上传新的 WebJob。
  3. 创建新的 Azure 计划程序作业集合。
  4. 生成 HTTP 基本身份验证 header 值。
  5. 创建一个新的 Azure 计划程序 HTTP 作业,向 *.scm.azurewebsites.net API 发出经过身份验证的请求。

希望这能让其他一些开发人员免于绞尽脑汁地试图解决这个问题。

关于powershell - 使用 PowerShell 创建计划的 Azure WebJob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25307232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com