八达通部署中的Powershell可变替换

时间:2014-05-14 08:11:46

标签: powershell octopus-deploy

我有一个非常简单的powershell脚本,可以在特定组件上完成部署时通知newrelic。我遇到的问题是我无法正确发送版本号。

我使用的脚本是:

$NewRelicUri = "https://api.newrelic.com/deployments.xml"
$body = @{ 
    "deployment[app_name]" = "PB.Website"; 
    "deployment[revision]"= "#{Octopus.Release.Number}"; 
} 

Write-Host "Sending notification to $NewRelicUri..."
Invoke-WebRequest -Uri $NewRelicUri -Headers @{ "x-api-key"="XXX" } -Method Post -Body $body -UseBasicParsing

这将使用修订版#{Octopus.Release.Number}生成newrelic部署。我也尝试使用$OctopusParameters['Octopus.Release.Number']的长版本,但这会产生版本为System.Collections.Generic.Dictionary``2[System.String,System.String]['Octopus.Release.Number']的部署

如何让章鱼把实际发布号码发送给newrelic?

1 个答案:

答案 0 :(得分:6)

我不使用NewRelic,因此我无法对其进行真正的测试,但是您在长版本中遇到的错误表明您需要对该值使用子表达式:

 "deployment[revision]"= "$($OctopusParameters['Octopus.Release.Number'])" 

如果版本号已经是字符串,那么您可能只需使用:

"deployment[revision]" = $OctopusParameters['Octopus.Release.Number']