Я пытаюсь настроить конвейер развертывания в 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 доступна только в задании без агента?Мне нужен способ запустить скрипт в задании без агента, чтобы сгенерировать дату / время для моего процесса развертывания