azure - 如何通过 VSTS 在每个环境中使用不同的 'settings.job'

标签 azure azure-webjobs webjob

我们正在将计划的 Web 作业部署到 Azure。 Web 作业是使用 Visual Studio 2015 开发的。“settings.job”文件包含计划定义。但是,我们希望根据我们是部署到“开发”环境还是“暂存/生产”环境来使用不同的计划。实现这一目标的最佳方法是什么?

这是对上述问题的更新。当我们从 GitHub 进行部署时,Sentinel 给出的以下答案有效。但是,现在我们使用 Visual Studio Team Services 进行构建并部署到 Azure 中,该方法不再有效。这几乎就像 VSTS 在预构建事件之前将原始 settings.job 文件的副本复制到其他位置,将每个环境的版本复制到原始 settings.job 上,并使用这些副本来创建部署包。任何见解或建议将不胜感激。

最佳答案

我会编写一个 PowerShell 脚本来实现此目的。 在构建定义中创建一个变量来存储 settings.job 文件位置,并创建另一个变量来存储计划。然后使用 VSTS 中的 PowerShell 脚本实用程序更新设置文件。

下面的代码将更新文件。

param(
    [Parameter(Mandatory=$true)][string]$configFile, 
    [Parameter(Mandatory=$true)][string]$schedule
)

$j = Get-Content $configFile -Raw | ConvertFrom-Json
$j.schedule = $schedule
$j | ConvertTo-Json | set-content $configFile

关于azure - 如何通过 VSTS 在每个环境中使用不同的 'settings.job',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43235113/

相关文章:

node.js - Azure 和移动服务用于文件上传(编码后)?

c# - 如何以编程方式将 Azure WebJob 标记为失败?

Azure Webjobs 发布错误(事件目录)

Azure WebJob 错误的平台目标

node.js - 如何强制一个 bot.on 在另一个 bot.on 之前运行

azure - Powershell - 上传到 Azure blob 容器

c# - Fineuploader with Azure,空图像问题

c# - 如何在Azure服务总线选项中的MessageHandlerOptions中设置自动完成(使用Net Core 3.1)

azure - Microsoft Azure Webjobs 时区差异

azure - 为什么 Azure WebJob 中的时间触发器被触发两次?