Запуск сценария в задании без агента - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь настроить конвейер развертывания в DevOps Azure для веб-приложения.В рамках этого процесса мне нужно выдать POST API, чтобы создать окно обслуживания с нашим поставщиком услуг мониторинга для поддержки нашего SLA для веб-приложения.Чтобы создать полезную нагрузку JSON для этого запроса API, мне нужно иметь точную дату / время для начала и конца окна обслуживания.

Пока у меня есть настройка задачи PowerShell для агентаЗадание, которое нужно запустить, чтобы получить значения времени в правильном часовом поясе (агент и агент развертывания находятся в одном и том же средстве / часовом поясе).

Мне пришлось сокращать имена некоторых переменных из-за ограничения длины, с которым я столкнулсядля сценария.Но $da - это просто аргумент продолжительности для длины окна обслуживания.

Param([int]$da)
$df="yyyy-MM-dd"
$tf="HH:mm"
$start=(Get-Date).AddMinutes(1)
$end=$start.AddMinutes($da)
$startDate = $start.ToString($df)
$startTime=$start.ToString($tf)
$endDate=$end.ToString($df)
$endTime=$end.ToString($tf)
Write-Host "##vso[task.setvariable variable=startDate]$startDate"
Write-Host "##vso[task.setvariable variable=startTime]$startTime"
Write-Host "##vso[task.setvariable variable=endDate]$endDate"
Write-Host "##vso[task.setvariable variable=endTime]$endTime"

Это прекрасно работает, и я могу убедиться, что переменные установлены правильно, используя новую задачу PowerShell для запуска сразу послеэто одно и то же задание

Write-Host $env:startDate
Write-Host $env:startTime
Write-Host $env:endDate
Write-Host $env:endTime

Но когда я пытаюсь использовать эти переменные в задаче Invoke REST API в задании без агента, они отображаются пустыми.Я сейчас выдаю это postman-echo.com, чтобы проверить мою полезную нагрузку.

{
    display_name:"$(Release.ReleaseName)",
    description:"Deployment requested by $(Release.RequestedFor)",
    start_date:"$(startDate)",
    start_time:"$(startTime)",
    end_date:"$(endDate)",
    end_time:"$(endTime)"
}

Похоже, что переменные не сохраняются между заданиями.При этом, как мне достичь своей цели, учитывая, что задача сценария PowerShell недоступна в задании без агента, а задача Invoke REST API доступна только в задании без агента?Мне нужен способ запустить скрипт в задании без агента, чтобы сгенерировать дату / время для моего процесса развертывания

...