Подстановка переменных 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

Это создает развертывание в newrelic с ревизией #{Octopus.Release.Number}. Я также пытался использовать расширенную версию $OctopusParameters['Octopus.Release.Number'], но это приводит к развертыванию с версией System.Collections.Generic.Dictionary``2[System.String,System.String]['Octopus.Release.Number'].

Как я могу заставить осьминога отправить фактический номер выпуска в newrelic?


person ilivewithian    schedule 14.05.2014    source источник
comment
Не используйте newrelic, поэтому я не могу проверить, но я бы попробовал это: развертывание [ревизия] = $ ($ OctopusParameters ['Octopus.Release.Number'])   -  person mjolinor    schedule 14.05.2014
comment
Это сделало работу. Хотите перенести свой комментарий в ответ, чтобы я мог его принять?   -  person ilivewithian    schedule 14.05.2014
comment
Готово. Рад, что исправил!   -  person mjolinor    schedule 14.05.2014


Ответы (1)


Я не использую NewRelic, поэтому я не могу его протестировать, но эта ошибка, которую вы получаете в своей длинной версии, указывает на то, что вам нужно использовать подвыражение для этого значения:

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

Если номер выпуска уже представлен в виде строки, вы можете обойтись просто:

"deployment[revision]" = $OctopusParameters['Octopus.Release.Number']
person mjolinor    schedule 14.05.2014