【发布时间】:2017-12-06 12:51:25
【问题描述】:
提供以下脚本以在 azure 中启动 Webjobs。但我将 Json 文件包含到 Powershell 脚本中并运行 Webjobs。它仅适用于一个环境。但我希望同一个脚本用于多个具有不同 Webjob 名称的环境。那么如何修改此脚本,以便在发布定义时停止和启动 VSTS 中的 Webjobs,目前,我有 4 个用于开发环境的 Webjobs,我有 8 个用于具有不同天蓝色订阅的 Int Environment 的 Webjobs。那么如何将以下脚本用于不同的环境。请帮助我。我不能将以下脚本用于所有环境,因为我正在导入唯一的一个 json 文件。所以它只会接受特定的 json 参数。但在我的情况下,不同环境的 json 参数会有所不同。那么如何将不同的 json 文件内容导入到下面的脚本中呢?是否有可能包含多个 json 文件,并且脚本只能接受基于我在 VSTS 中的发布定义中运行的环境的特定 Json 脚本,并且可以相应地运行。
Parameter.json:
{
"userName": "user1",
"password": "password1",
"webAppName": "webapp1",
"resourceGroup": "resourceGroup1",
"webJobs": [
{
"name": "abc",
"typeName": "continuous"
},
{
"name": "def",
"typeName": "continuous"
}
]
}
脚本:
[object]$paramObj=Get-Content "PowerShellModuleProject1\parameter2.json"|ConvertFrom-Json
$userName =$paramObj.userName
$password =$paramObj.password
$webAppName =$paramObj.webAppName
$resourceGroup=$paramObj.resourceGroup
[object[]]$webJobs=$paramObj.webJobs
foreach($wj in $webjobs){
if($wj.typeName -eq "continuous")
{
Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroup -ResourceType Microsoft.Web/sites/ContinuousWebJobs -ResourceName "$webAppName/$($wj.name)" -Action start -ApiVersion 2015-08-01 -Force
Write-Host "continuous"
Write-Host $wj.name
}
else{
Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroup -ResourceType Microsoft.Web/sites/TriggeredWebJobs -ResourceName "$webAppName/$($wj.name)" -Action run -ApiVersion 2015-08-01 -force
Write-Host "triggered"
Write-Host $wj.name
}
}
【问题讨论】:
标签: powershell azure-webjobs azure-pipelines-release-pipeline