Можете ли вы условно использовать «netsh http add urlacl» в YAML-файле конвейера Azure?

Нам нужно зарегистрировать HTTP-прослушиватель на наших серверах сборки и хотим, чтобы все шаги нашего конвейера были «зелеными», когда все в порядке. Итак, чтобы наш код работал, нам нужно запустить следующий код:

netsh http add urlacl url=http://+:8080/

Однако при двукратном запуске на сервере сборки мы получаем следующую ошибку:

Url reservation add failed, Error: 183 Cannot create a file when that file already exists.

Все идет нормально. Однако, если мы когда-нибудь изменим серверы сборки или добавим/удалем некоторые из них и т. д., наш код может больше не работать. И если это произойдет через несколько месяцев/лет, кто вспомнит о добавлении прослушивателя http...

Итак, есть ли способ условно добавить код urlacl?

Что-то вроде:

netsh http show urlacl url=http://+:8080/ 
    {If No results, only then run the following line of code, otherwise do nothing else:}
netsh http add urlacl url=http://+:8080/

Обходным решением было бы задокументировать это где-нибудь, и если мы когда-нибудь снова столкнемся с проблемами, запомните, где это было задокументировано. Или выполнять этот шаг всегда, но добавлять «условие: SuccessedOrFailed()» к следующему шагу YAML? Однако эти варианты не являются предпочтительными.

Это помогает? stackoverflow.com/questions/54943838/…

Rui Jarimba 16.07.2024 16:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, есть ли способ условно добавить код urlacl?

Вы можете использовать задачу PowerShell для запуска следующего сценария для условного добавления кода urlacl.

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $urlacl = netsh http show urlacl url=http://+:8080/
      if ($urlacl -like "*Reserved URL            : http://+:8080/*") {
          Write-Host "URL reservation already exists, no action taken."
      } else {
          netsh http add urlacl url=http://+:8080/ user=DOMAIN\user
          netsh http show urlacl url=http://+:8080/
      }

Вот мой результат теста:

Это именно то, что мне нужно! Большое спасибо!

Tempuslight 18.07.2024 09:06

Рад помочь Вам с проблемой. Приятного кодирования! :)

Miao Tian-MSFT 18.07.2024 09:49

Другие вопросы по теме