我有Json文件,下面和Powershell脚本使用下面的脚本调用这个Json文件。但是我想从VSTS Powershell任务中调用Json值作为参数。请帮我解释如何调用inturn。
鉴于以下count
我有用户名,密码,资源组,webapp名称。我想使用参数部分下的Powershell任务通过VSTS Release定义将这4个参数作为参数调用。我不想将这4个值放在Json中,而是想从Powershell脚本中调用参数。
Json Script:
webjob_list.json
webjobs Stop.ps1:
WebJob_list.json:
{
"Dev":
{
"userName": "abc-dev\\$abcjobs-dev",
"password": "SKGGfiuqHdvJ09eCmhDmE4mBnL8PSAZhnQMxzb",
"webAppName": "abcjobs-dev",
"resourceGroup": "abc-Dev"
"webJobs": [
{
"name": "webjobname",
"typeName": "continuous"
},
{
"name": "webjobname",
"typeName": "continuous"
},
{
"name": "webjobname",
"typeName": "continuous"
},
{
"name": "webjobname",
"typeName": "continuous"
}
]
}
答案 0 :(得分:0)
您的脚本看起来已经读取了json,但是要在需要在脚本本身的VSTS中设置它们的任务之间传递变量
Write-Host "##vso[task.setvariable variable=username]$username"
也可以从一开始就将变量存储在VSTS中,这可能是个不错的选择?
VSTS>发布>管道>新
接下来创建一个Dev环境
单击“变量”链接并创建4个变量。
检查它们是否限定在Dev环境中。
然后在PowerShell任务中创建一个param块来接受变量
param(username, password, webappname, resourcegroup)
然后在PowerShell任务的Script Arguments框中添加参数:
-username $(username) -password $(password) -webappname $(webappname) -resourcegroup $(resourcegroup)
答案 1 :(得分:0)
Json file:
{
"Dev": {
"webJobs": [
{
"name": "webjobname",
"typeName": "continuous"
},
{
"name": "webjobname",
"typeName": "continuous"
},
{
"name": "webjobname",
"typeName": "continuous"
},
{
"name": "webjobname",
"typeName": "continuous"
}
]
}
}
Script:
param(
[string]$currentEnv,
[string]$username
[string]$password,
[string]$webAppName,
[string]$resourceGroup
)
[object]$paramObj=Get-Content "d:\a\r1\a\Jobs\WebJobs_scripts\WebJob_list.json" |ConvertFrom-Json
[object[]]$webJobs=$paramObj.$currentEnv.webJobs
foreach($wj in $webjobs)
{
if($wj.typeName -eq "continuous")
{
Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroup -ResourceType Microsoft.Web/sites/ContinuousWebJobs -ResourceName "$webAppName/$($wj.name)" -Action stop -ApiVersion 2015-08-01 -Force
Write-Host "continuous"
Write-Host $wj.name
}
}