Бассейн лазурный вакансии: ФОК Бассейн Лазурный вакансии, официальный сайт, телефон отдела кадров, отзывы

Содержание

Сопровождающая няня Москва, Планерная на Pomogatel.ru

Возраст: 25-55 лет

Опыт: любой

Оплата: 200 руб/час

Оплата: 5000 руб/мес

Дата создания: 23.08.2020 года

Дата начала работы: 01.09.2020

Связаться с нанимателем

Описание

Требуется сопровождающая няня для девочки 10-ти лет. Необходимо 2 раза в неделю отводить ребёнка в бассейн и обратно. Понедельник/среда, 14.00-16.00. Забирать из школы №827 1й корпус, отводить в бассейн Лазурный, и обратно домой на ул.Героев Панфиловцев. Ищу строго по району Северное Тушино.

Навыки няни:

Возраст ребенка:

Школьники (10+ лет)

Опыт работы:

Прогулка, сопровождение в сад/ на занятия

Дополнительные обязанности:

  • Разовые поручения

Максимум детей в семье для одновременной работы:

Кратко

Место работы:
  • Без проживания
Гражданство:

Белоруссия

Молдавия

Россия

Украина

Национальность:

Белоруссия

Россия

Украина

График работы

Вакансии

РЕАСАНМЕД — это многопрофильный медицинский центр, оказывающий амбулаторную, профилактическую и реабилитационную помощь взрослым и детям. На рынке медицинских услуг с 2016 года.

> 4200 м2

5 этажей

> 150 сотрудников

В распоряжении клиники имеются:

  • кабинеты для приемов врачей,
  • процедурные кабинеты,
  • водолечебница,
  • залы групповых тренировок и ЛФК,
  • тренажерный зал,
  • 3 бассейна с разной температурой воды.

Преимущества работы у нас

1. Гибкий график работы.
Независимо от того — основное это место работы или совместительство, мы вместе с вами подберем удобный график, который устроит всех.

2. Стабильные выплаты.
Выплачиваем заработную плату вовремя и в полной объеме.

3. Близко к метро.
От метро Электросила до нашего центра — всего 5-7 минут пешком. А для автовладельцев — удобная парковка.

4. Возможности для развития.
Мы поддерживаем стремление сотрудников к саморазвитию. К этому также располагает имеющееся оборудование в центре и специфика имеющихся пациентов.

5. Бесплатный фитнес и бассейн.
Работая в РЕАСАНМЕД, вы можете свободно посещать тренажерный зал и бассейн.

В центре созданы комфортные условия для сотрудников: раздевалка с личным шкафчиком, ординаторская с микроволновой печью, чайником и холодильником, и о вашей форме позаботится санитарка.

Кого мы ищем

В нашу сплоченную команду мы ищем новых сотрудников, желающих помогать пациентам и делать этот мир лучше:

1. Врачи.

2. Средний медицинский персонал (инструкторы-методисты ЛФК, процедурные медсестры, медсестры физиотерапии, медсестры в водолечебницу).

3. Младший медицинский персонал (санитарки).

Присылайте свое резюме на почту [email protected], даже если вы не нашли нужную вам вакансию ниже — мы всегда рады принять в команду хорошего специалиста.


Лазурный

Интересные факты:

Скалы Адалары – памятник природы и визитная карточка Крыма — находятся в море напротив лагеря «Лазурный».

 

Одно из таинственных мест «Артека» — в «Лазурном». Это склеп бывших хозяев курорта «Суук-Су» Березиных, построенный по проекту Н. Краснова.

 

Пушкинская площадка «Лазурного» — одна из самых известных видовых площадок Крыма, здесь открывается панорама местности от горы Аю-Даг до мыса Мартьян (Ялта): весь «Артек», Гурзуф, Ай-Даниль, Никита и бесконечные морские просторы.

27 июня 1982 года на Пушкинской площади был установлен бюст А. С. Пушкина работы скульптора А. Емельянцева в память о пребывании великого поэта в этих местах. 
На известной картине Айвазовского «Пушкин в Крыму у гурзуфских скал» (1899 год) поэт изображен на скале (ныне Пушкинская) в «Лазурном». Картина хранится в Одесском художественном музее.

Пушкинский грот «Лазурного» изображен на рисунке итальянского художника Карло Боссоли, вошедшем в уникальный альбом литографий о Крыме, изданный в Лондоне в 1856 году.

 

В августе 1988 года студентами Уфимского нефтяного института закончено строительство «Пушкинской тропы» в парке лагеря. Строительство продолжалось три летних сезона. В это же время была построена «Греческая эстрада». 
 

Июль 1954 г. — строй действующих введена новая столовая лагеря (три зала, варочный зал, разделочные помещения и др.) На первом этаже отреставрированная «Палехская роспись». Выполнена в 1984 году по мотивам сказок А.С. Пушкина, к 185-летию со дня рождения поэта. Авторы проекта и живописцы студенты-выпускники Палехского училища. Палехская роспись – это вид русской народной миниатюрной живописи, выполненная темперными красками.

 

До 1954 года в лагере «Лазурный» отдыхали только девочки.

 

В сентябре 1956 года в лагеря открыта Буденновская аллея. По инициативе ребят десятого отряда в дружине были созданы ударные строительные бригады и «пионерское стройуправление». Ребята кирками и лопатами расширяли и планировали тропинку, по которой 10 лет назад в апреле 1946 года ходил и беседовал с ребятами С. М. Буденный. 
 

6 ноября 1957 года в лагере установлена мемориальная доска в память героев артековцев.

Поляна сказок – известный экскурсионный объект Ялты — до 60-х годов находился в «Лазурном».

 

60-70 годы стали для «Лазурного» местом проведения всесоюзных сборов и слетов: юных друзей милиции и пограничников, сбор победителей всесоюзного турнира смекалистых, слет юных филателистов страны и другие. 


Владимир Михайлович Комаров, известный летчик-космонавт, не раз бывал в гостях у артековцев. После трагической гибели летчика-космонавта в сентябре 1967 года лагерю было присвоено имя героя. 4 августа 1985 года на площадке у столовой установлен бюст летчика-космонавта Владимира Михайловича Комарова, выполненный скульптором А. Емельянцевым. 

В 80-е годы «Лазурный» стал регулярно принимать зарубежные делегации, проводились международные смены. 
 

В 1985 году в «Лазурном» студенты Уфимского института начали строительство сказочного городка «Пушкинская тропа» и завершили его в 1988 году.

 

20 марта 1987 года «Лазурный» отметил свое 50-тилетие.

 

К началу 90-х годов лагерь заметно преобразился. Благодаря инициативности и энергии начальника лагеря С. Ю. Лебедева был осуществлен капитальный ремонт почти всего лагеря: реконструирована летняя эстрада, переделана «Буденовская аллея», костровая площадь лагеря была перенесена на «Пушкинскую». В лагере открыли детское кафе. У детей появилась возможность освоить компьютеры. Полностью телефонизирован лагерь, проведено кабельное телевидение. На 2-й даче открыт эстетический центр. 

 

Летом 2010 года в «Лазурном» снимался телесериал «Сваты-4». 

 

В октябре 2016 года на территории лагеря построили новую дачу, дети решили её назвать «Белой». Весь Артек поддержал их инициативу. 

 

20 марта 2017 года «Лазурный» отметил свое 80-тилетие.

заданий и задач в пакетной службе Azure — пакетная служба Azure

  • Читать 12 минут

В этой статье

В пакетной службе Azure задача представляет собой единицу вычислений. задание представляет собой набор этих задач. Подробнее о заданиях и задачах, а также о том, как они используются в рабочем процессе пакетной службы Azure, рассказывается ниже.

Вакансий

Задание — это набор задач. Он управляет выполнением вычислений его задачами на вычислительных узлах в пуле.

Задание указывает пул, в котором должна выполняться работа. Вы можете создать новый пул для каждого задания или использовать один пул для множества заданий. Вы можете создать пул для каждого задания, связанного с расписанием заданий, или один пул для всех заданий, связанных с расписанием заданий.

Приоритет задания

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

Чтобы обновить приоритет задания, вызовите Обновление свойств задания (Batch REST) ​​или измените CloudJob.Priority (Batch .NET). Значения приоритета варьируются от -1000 (самый низкий приоритет) до 1000 (самый высокий приоритет).

В рамках одного пула задания с более высоким приоритетом имеют приоритет планирования по сравнению с заданиями с более низким приоритетом. Задачи в заданиях с более низким приоритетом, которые уже выполняются, не будут вытеснены задачами в задании с более высоким приоритетом.Задания с одинаковым уровнем приоритета имеют равные шансы быть запланированными, и порядок выполнения задач не определен.

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

Рабочие ограничения

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

  • Вы можете установить максимальное время настенных часов , чтобы, если задание выполняется дольше указанного максимального времени настенных часов, задание и все его задачи прекращаются.
  • В качестве ограничения можно указать максимальное количество повторных попыток задачи , в том числе, будет ли задача всегда повторяться или никогда не повторяться. Повторная попытка задачи означает, что в случае сбоя задачи она будет повторно запущена.

Задачи менеджера заданий и автоматическое завершение

Ваше клиентское приложение может добавлять задачи в задание, или вы можете указать задачу диспетчера заданий. Задача диспетчера заданий содержит информацию, необходимую для создания необходимых задач для задания, при этом задача диспетчера заданий выполняется на одном из вычислительных узлов в пуле.Задачу диспетчера заданий выполняет пакетная обработка; оно ставится в очередь сразу после создания задания и перезапускается в случае сбоя. Задача диспетчера заданий требуется для заданий, созданных по расписанию заданий, потому что это единственный способ определить задачи до создания экземпляра задания.

По умолчанию задания остаются в активном состоянии, когда все задачи в задании завершены. Вы можете изменить это поведение, чтобы задание автоматически завершалось по завершении всех задач в задании. Задайте для задания свойство onAllTasksComplete (OnAllTasksComplete в пакетном режиме.NET) на terminatejob * `, чтобы автоматически завершить задание, когда все его задачи находятся в состоянии завершения.

Пакетная служба считает задание с нет задачами выполненными. Поэтому этот параметр чаще всего используется с задачей диспетчера заданий. Если вы хотите использовать автоматическое завершение задания без диспетчера заданий, вам следует сначала установить для свойства onAllTasksComplete нового задания значение noaction , а затем установить его в terminatejob * `только после того, как вы закончите добавлять задачи в задание.

Плановые работы

Расписания заданий позволяют создавать повторяющиеся задания в пакетной службе. Расписание заданий указывает, когда запускать задания, и включает спецификации для заданий, которые должны быть запущены. Вы можете указать продолжительность расписания (как долго и когда оно действует) и как часто задания создаются в течение запланированного периода.

Задачи

Задача — это единица вычислений, связанная с заданием. Он работает на узле. Задачи назначаются узлу для выполнения или ставятся в очередь до тех пор, пока узел не станет свободным.Проще говоря, задача запускает одну или несколько программ или сценариев на вычислительном узле для выполнения необходимой вам работы.

При создании задачи можно указать:

  • Командная строка для задачи. Это командная строка, которая запускает ваше приложение или сценарий на вычислительном узле.

    Важно отметить, что командная строка не работает под оболочкой. Следовательно, он не может изначально использовать преимущества функций оболочки, таких как расширение переменной среды (это включает PATH ).Чтобы воспользоваться этими функциями, необходимо вызвать оболочку в командной строке, например, запустив cmd. exe на узлах Windows или / bin / sh в Linux:

    cmd / c MyTaskApplication.exe% MY_ENV_VAR%

    / bin / sh -c MyTaskApplication $ MY_ENV_VAR

    Если вашим задачам нужно запустить приложение или сценарий, которых нет в PATH узла или ссылочных переменных среды, вызовите оболочку явно в командной строке задачи.

  • Файлы ресурсов , содержащие данные для обработки. Эти файлы автоматически копируются на узел из хранилища BLOB-объектов в учетной записи хранилища Azure перед выполнением командной строки задачи. Дополнительные сведения см. В разделах «Запуск задачи» и «Файлы и каталоги».

  • Переменные среды , , которые требуются вашему приложению. Дополнительные сведения см. В разделе Параметры среды для задач.

  • Ограничения , при которых должна выполняться задача.Например, ограничения включают максимальное время, в течение которого задача может быть запущена, максимальное количество повторных попыток невыполненной задачи и максимальное время, в течение которого файлы в рабочем каталоге задачи сохраняются.

  • Пакеты приложений для развертывания на вычислительном узле, на котором запланировано выполнение задачи. Пакеты приложений обеспечивают упрощенное развертывание и управление версиями приложений, запускаемых вашими задачами. Пакеты приложений уровня задач особенно полезны в средах с общим пулом, где разные задания выполняются в одном пуле, и пул не удаляется после завершения задания.Если у вашего задания меньше задач, чем узлов в пуле, пакеты приложений задач могут минимизировать передачу данных, поскольку ваше приложение развертывается только на узлах, на которых выполняются задачи.

  • Ссылка на образ контейнера в Docker Hub или частном реестре и дополнительные параметры для создания контейнера Docker, в котором задача выполняется на узле. Вы указываете эту информацию только в том случае, если пул настроен с конфигурацией контейнера.

Примечание

Максимальное время жизни задачи с момента добавления в задание до момента его завершения составляет 180 дней. Выполненные задачи сохраняются в течение 7 дней; данные для задач, не завершенных в течение максимального срока жизни, недоступны.

В дополнение к задачам, которые вы определяете для выполнения вычислений на узле, пакетная служба также предоставляет несколько специальных задач:

Начать задачу

Связывая задачу запуска с пулом, вы можете подготовить операционную среду его узлов. Например, вы можете выполнять такие действия, как установка приложений, запускаемых вашими задачами, или запуск фоновых процессов.Задача запуска запускается каждый раз при запуске узла, пока он остается в пуле. Это включает в себя, когда узел впервые добавляется в пул и когда он перезапускается или повторно создает образ.

Основным преимуществом задачи запуска является то, что она может содержать всю информацию, необходимую для настройки вычислительного узла и установки приложений, необходимых для выполнения задачи. Следовательно, увеличить количество узлов в пуле так же просто, как указать новое количество целевых узлов. Задача запуска предоставляет информацию, необходимую для пакетной службы, чтобы настроить новые узлы и подготовить их к принятию задач.

Как и в случае любой задачи пакетной службы Azure, вы можете указать список файлов ресурсов в службе хранилища Azure в дополнение к командной строке, которую нужно выполнить. Пакетная служба сначала копирует файлы ресурсов на узел из службы хранилища Azure, а затем запускает командную строку. Для задачи запуска пула список файлов обычно содержит приложение задачи и его зависимости.

Однако начальная задача может также включать справочные данные, которые будут использоваться всеми задачами, выполняемыми на вычислительном узле. Например, командная строка задачи запуска может выполнить операцию robocopy для копирования файлов приложения (которые были указаны как файлы ресурсов и загружены на узел) из рабочего каталога задачи запуска в общую папку , а затем запустить MSI или установка .exe .

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

Если при запуске задачи на вычислительном узле происходит сбой, то состояние узла обновляется, чтобы отразить сбой, и узлу не назначаются никакие задачи. Задача запуска может завершиться ошибкой, если возникает проблема с копированием файлов ресурсов из хранилища или если процесс, выполняемый ее командной строкой, возвращает ненулевой код выхода.

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

Примечание

Пакетная обработка ограничивает общий размер стартовой задачи, включая файлы ресурсов и переменные среды. Если вам нужно уменьшить размер стартовой задачи, вы можете использовать один из двух подходов:

  1. Вы можете использовать пакеты приложений для распределения приложений или данных по каждому узлу в пуле пакетов.Дополнительные сведения о пакетах приложений см. В разделе Развертывание приложений для вычисления узлов с помощью пакетов приложений пакетной службы.

  2. Вы можете вручную создать заархивированный архив, содержащий файлы ваших приложений. Загрузите заархивированный архив в службу хранилища Azure в виде большого двоичного объекта. Укажите заархивированный архив как файл ресурсов для своей стартовой задачи. Прежде чем запускать командную строку для своей стартовой задачи, распакуйте архив из командной строки.

    Чтобы распаковать архив, вы можете использовать любой инструмент архивирования по вашему выбору.Вам нужно будет включить инструмент, который вы используете для распаковки архива, в качестве файла ресурсов для начальной задачи.

Задача менеджера заданий

Обычно вы используете задачу диспетчера заданий для управления и / или отслеживания выполнения заданий. Например, задачи диспетчера заданий часто используются для создания и отправки задач для задания, определения дополнительных задач для выполнения и определения того, когда работа будет завершена.

Однако задача диспетчера заданий не ограничивается этими действиями. Это полноценная задача, которая может выполнять любые действия, необходимые для работы.Например, задача диспетчера заданий может загрузить файл, указанный в качестве параметра, проанализировать содержимое этого файла и отправить дополнительные задачи на основе этого содержимого.

Задача диспетчера заданий запускается раньше всех других задач. Он предоставляет следующие возможности:

  • Он автоматически отправляется как задача пакетной службой при создании задания.
  • Он запланирован на выполнение перед другими задачами в задании.
  • Связанный с ним узел удаляется из пула последним при его уменьшении.
  • Его завершение может быть связано с завершением всех задач в работе.
  • Задаче диспетчера заданий дается наивысший приоритет, когда ее необходимо перезапустить. Если бездействующий узел недоступен, пакетная служба может завершить одну из других запущенных задач в пуле, чтобы освободить место для выполнения задачи диспетчера заданий.
  • Задача диспетчера заданий в одном задании не имеет приоритета над задачами других заданий. Во всех должностях соблюдаются только приоритеты на уровне должностей.

Задачи подготовки и выпуска задания

Batch предоставляет задачи подготовки заданий для настройки выполнения перед заданием и задания выпуска задания для обслуживания или очистки после задания.

Задача подготовки задания выполняется на всех вычислительных узлах, на которых запланировано выполнение задач, до того, как будут выполнены какие-либо другие задачи задания. Например, вы можете использовать задачу подготовки задания для копирования данных, которые являются общими для всех задач, но являются уникальными для задания.

Когда задание завершено, задача освобождения задания запускается на каждом узле в пуле, который выполнил хотя бы одну задачу. Например, задача выпуска задания может удалять данные, которые были скопированы задачей подготовки задания, или может сжимать и выгружать данные журнала диагностики.

Задачи подготовки задания и выпуска позволяют указать командную строку, запускаемую при вызове задачи. Они предлагают такие функции, как загрузка файла, расширенное выполнение, настраиваемые переменные среды, максимальная продолжительность выполнения, количество повторных попыток и время хранения файла.

Дополнительные сведения о задачах подготовки и выпуска заданий см. В разделе Выполнение задач подготовки и завершения заданий на вычислительных узлах пакетной службы Azure.

Задача с несколькими экземплярами

Задача с несколькими экземплярами - это задача, которая настроена для одновременного выполнения на нескольких вычислительных узлах.С помощью задач с несколькими экземплярами вы можете включить сценарии высокопроизводительных вычислений, которые требуют группы вычислительных узлов, которые выделяются вместе для обработки одной рабочей нагрузки, например интерфейса передачи сообщений (MPI).

Для подробного обсуждения выполнения заданий MPI в пакетном режиме с помощью библиотеки . NET пакетной службы ознакомьтесь с разделом Использование задач с несколькими экземплярами для запуска приложений интерфейса передачи сообщений (MPI) в пакетной службе Azure.

Зависимости задач

Зависимости задач, как следует из названия, позволяют указать, что задача зависит от завершения других задач перед ее выполнением.Эта функция обеспечивает поддержку ситуаций, в которых задача «нисходящего потока» потребляет выходные данные задачи «восходящего потока» или когда восходящая задача выполняет некоторую инициализацию, которая требуется нисходящей задаче.

Чтобы использовать эту функцию, необходимо сначала включить зависимости задач для своего пакетного задания. Затем для каждой задачи, которая зависит от другой (или многих других), вы указываете задачи, от которых зависит эта задача.

С помощью зависимостей задач вы можете настроить следующие сценарии:

  • taskB зависит от taskA ( taskB не начнет выполнение до тех пор, пока taskA не завершится).
  • taskC зависит как от taskA , так и от taskB .
  • taskD зависит от ряда задач, таких как задачи с 1 по 10 , перед выполнением.

Дополнительные сведения см. В разделах «Зависимости задач в пакетной службе Azure» и в примере кода TaskDependencies в репозитории GitHub azure-batch-samples.

Параметры среды для задач

Каждая задача, выполняемая пакетной службой, имеет доступ к переменным среды, которые она устанавливает на вычислительных узлах.Сюда входят переменные среды, определенные пакетной службой, и пользовательские переменные среды, которые вы можете определить для своих задач. Приложения и скрипты, выполняемые вашими задачами, имеют доступ к этим переменным среды во время выполнения.

Вы можете установить пользовательские переменные среды на уровне задачи или задания, заполнив свойство Параметры среды для этих сущностей. Для получения дополнительных сведений см. Добавление задачи в операцию задания (пакетный REST) ​​или CloudTask.EnvironmentSettings и CloudJob.Свойства CommonEnvironmentSettings в Batch .NET.

Ваше клиентское приложение или служба может получить переменные среды задачи, как определяемые службой, так и настраиваемые, с помощью функции Получить информацию об операции задачи (Batch REST) ​​или путем доступа к свойству CloudTask.EnvironmentSettings (Batch .NET). Процессы, выполняющиеся на вычислительном узле, могут получить доступ к этим и другим переменным среды на узле, например, используя знакомый синтаксис % VARIABLE_NAME% (Windows) или $ VARIABLE_NAME (Linux).

Список всех переменных среды, определенных службой, можно найти в разделе «Переменные среды вычислительного узла».

Следующие шаги

Краткое руководство по Azure - Запустите свое первое пакетное задание на портале Azure - Пакетная служба Azure

  • 5 минут на чтение

В этой статье

Начните работу с пакетной службой Azure, используя портал Azure для создания учетной записи пакетной службы, пула вычислительных узлов (виртуальных машин) и задания, которое выполняет задачи в пуле.

После завершения этого краткого руководства вы поймете ключевые концепции пакетной службы и будете готовы опробовать пакетную службу с более реалистичными рабочими нагрузками в более крупном масштабе.

Предварительные требования

Создать пакетный счет

Выполните следующие действия, чтобы создать образец учетной записи пакетной службы для целей тестирования. Для создания пулов и заданий вам понадобится пакетная учетная запись. Вы также можете связать учетную запись хранения Azure с учетной записью пакетной службы. Хотя это не требуется для этого краткого руководства, учетная запись хранения полезна для развертывания приложений и хранения входных и выходных данных для большинства реальных рабочих нагрузок.

  1. На портале Azure выберите Создать ресурс .

  2. Введите «пакетная служба» в поле поиска, затем выберите Пакетная служба .

  3. Выберите Создать .

  4. В поле Группа ресурсов выберите Создать новый и введите имя для своей группы ресурсов.

  5. Введите значение для Имя учетной записи . Это имя должно быть уникальным в пределах выбранного расположения Azure .Он может содержать только строчные буквы и цифры и должен содержать от 3 до 24 символов.

  6. В разделе Учетная запись хранения щелкните Выберите учетную запись хранения , затем выберите существующую учетную запись хранения или создайте новую.

  7. Оставьте остальные настройки как есть. Выберите Просмотр + создание , затем выберите Создать , чтобы создать учетную запись пакетной обработки.

Когда развертывание выполнено успешно, появится сообщение , перейдите к созданной вами учетной записи пакетной службы.

Создать пул вычислительных узлов

Теперь, когда у вас есть учетная запись пакетной службы, создайте образец пула вычислительных узлов Windows для целей тестирования. Пул в этом кратком руководстве состоит из двух узлов, на которых запущен образ Windows Server 2019 из Azure Marketplace.

  1. В учетной записи пакета выберите Пулы > Добавить .

  2. Введите идентификатор пула с именем mypool .

  3. В операционной системе используйте следующие параметры (вы можете изучить другие параметры).

    Настройка Значение
    Тип изображения Торговая площадка
    Издатель сервер Microsoft Windows
    Предложение сервер Windows
    Артикул 2019-центр обработки данных-ядро-smalldisk
  4. Прокрутите вниз, чтобы ввести параметры Размер узла и Масштаб . Предлагаемый размер узла предлагает хороший баланс производительности и стоимости для этого быстрого примера.

    Настройка Значение
    Уровень ценообразования узла Standard_A1_v2
    Целевые выделенные узлы 2
  5. Оставьте значения по умолчанию для остальных настроек и выберите OK , чтобы создать пул.

Пакетная служба создает пул немедленно, но для выделения и запуска вычислительных узлов требуется несколько минут.В это время состояние выделения пула равно Изменение размера . Вы можете создать задание и задачи во время изменения размера пула.

Через несколько минут состояние выделения изменится на Устойчиво , и узлы запустятся. Чтобы проверить состояние узлов, выберите пул, а затем выберите Узлы . Когда состояние узла Idle , он готов к выполнению задач.

Создать работу

Теперь, когда у вас есть пул, создайте задание для его запуска.Пакетное задание - это логическая группа из одной или нескольких задач. Задание включает параметры, общие для задач, такие как приоритет и пул для запуска задач. В работе не будет задач, пока вы их не создадите.

  1. В ракурсе учетной записи пакета выберите Задания > Добавить .

  2. Введите Job ID под названием myjob .

  3. В Pool выберите mypool .

  4. Оставьте значения по умолчанию для остальных настроек и выберите OK .

Создание задач

Теперь выберите задание, чтобы открыть страницу Задачи . Здесь вы создадите примеры задач для выполнения в работе. Обычно вы создаете несколько задач, которые помещаются в очередь и распределяются для выполнения на вычислительных узлах. В этом примере вы создаете две идентичные задачи. Каждая задача запускает командную строку для отображения переменных среды пакетной обработки на вычислительном узле, а затем ожидает 90 секунд.

При использовании пакетной службы в командной строке указывается приложение или сценарий.Пакетная служба предоставляет несколько способов развертывания приложений и сценариев для вычислительных узлов.

Для создания первой задачи:

  1. Выбрать Добавить .

  2. Введите идентификатор задачи под названием mytask .

  3. В командной строке введите cmd / c "set AZ_BATCH & timeout / t 90> NUL" . Оставьте значения по умолчанию для остальных настроек и выберите Отправить .

Повторите шаги выше, чтобы создать вторую задачу.Введите другой идентификатор задачи , например mytask2 , но используйте ту же командную строку.

После создания задачи пакетная обработка ставит ее в очередь для запуска в пуле. Когда узел доступен для его запуска, задача запускается. В нашем примере, если первая задача все еще выполняется на одном узле, пакетная служба запустит вторую задачу на другом узле в пуле.

Просмотр вывода задачи

Созданные вами примеры задач будут выполнены за пару минут. Чтобы просмотреть результат выполненной задачи, выберите задачу, затем выберите файл stdout.txt , чтобы просмотреть стандартный вывод задачи. Содержимое похоже на следующий пример:

В содержимом показаны переменные среды пакетной службы Azure, заданные на узле. Когда вы создаете свои собственные пакетные задания и задачи, вы можете ссылаться на эти переменные среды в командных строках задач, а также в приложениях и скриптах, запускаемых из командных строк.

Очистить ресурсы

Если вы хотите продолжить работу с руководствами и примерами пакетной обработки, вы можете продолжать использовать учетную запись пакетной службы и связанную учетную запись хранения, созданную в этом кратком руководстве. Плата за саму учетную запись пакетной службы не взимается.

Плата за пул взимается во время работы узлов, даже если никакие задания не запланированы. Когда вам больше не нужен пул, удалите его. В представлении учетной записи выберите Пулы и имя пула. Затем выберите Удалить . После удаления пула все выходные данные задачи на узлах удаляются.

Когда больше не требуется, удалите группу ресурсов, учетную запись пакетной обработки и все связанные ресурсы. Для этого выберите группу ресурсов для учетной записи пакетной обработки и выберите Удалить группу ресурсов .

Следующие шаги

В этом кратком руководстве вы создали учетную запись пакетной обработки, пул пакетной обработки и пакетное задание. Задание запускало образцы задач, и вы просматривали выходные данные, созданные на одном из узлов. Теперь, когда вы понимаете ключевые концепции пакетной службы, вы готовы попробовать пакетную службу с более реалистичными рабочими нагрузками в более крупном масштабе. Чтобы узнать больше о пакетной службе Azure, перейдите к руководствам по пакетной службе Azure.

Пулы агентов

- Azure Pipelines

  • 18 минут на чтение

В этой статье

Azure Pipelines | Azure DevOps Server 2020 | Сервер Azure DevOps 2019 | TFS 2018 - TFS 2015

Примечание

В Microsoft Team Foundation Server (TFS) 2018 и предыдущих версиях конвейеры сборки и выпуска называются определениями , прогонов называются сборки , сервисных соединений называются сервисными конечными точками , этапы называются средами , и заданий называются фазами .

Вместо того, чтобы управлять каждым агентом по отдельности, вы организуете агентов в пулы агентов . В TFS пулы охватывают весь сервер; так что вы можете использовать пул агентов для разных коллекций и проектов.

Очередь агентов обеспечивает доступ к пулу агентов в рамках проекта. Когда вы создаете конвейер сборки или выпуска, вы указываете, какую очередь он использует. Очереди привязаны к вашему проекту в TFS 2017 и новее, поэтому вы можете использовать их только в конвейерах сборки и выпуска внутри проекта.

Чтобы разделить пул агентов с несколькими проектами, в каждом из этих проектов вы создаете очередь агентов, указывающую на один и тот же пул агентов. Хотя несколько очередей в проектах могут использовать один и тот же пул агентов, несколько очередей в проекте не могут использовать один и тот же пул агентов. Кроме того, каждая очередь агентов может использовать только один пул агентов.

Пулы агентов ограничены коллекциями проектов.

Вместо того, чтобы управлять каждым агентом по отдельности, вы организуете агентов в пулы агентов . В Azure Pipelines пулы охватывают всю организацию; так что вы можете использовать машины агентов в разных проектах. В Azure DevOps Server пулы агентов охватывают весь сервер; так что вы можете использовать машины агентов в проектах и ​​коллекциях.

Когда вы настраиваете агент, он регистрируется в одном пуле, а когда вы создаете конвейер, вы указываете, какой пул использует конвейер. Когда вы запускаете конвейер, он запускается на агенте из этого пула, который отвечает требованиям конвейера.

Примечание

Задания пула агентов запускают задание на одном агенте. Если вам нужно запустить задание на всех агентах, например в группе развертывания для классических конвейеров выпуска, см. Раздел Подготовка групп развертывания.

Вы можете создавать пулы агентов и управлять ими на вкладке «Пулы агентов» в настройках администратора.

Если вы являетесь администратором организации, вы можете создавать пулы агентов и управлять ими на вкладке «Пулы агентов» в настройках администратора.

  1. Выберите Azure DevOps , Параметры организации .

  2. Выберите Пулы агентов .

  1. Выберите Azure DevOps , Параметры коллекции .

  2. Выберите Пулы агентов .

  1. Выберите Azure DevOps , Параметры коллекции .

  2. Выберите Пулы агентов .

  1. Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  2. Выберите Управление пулами .

  1. Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  2. Выберите Управление пулами .

  1. Перейдите к своему проекту и выберите Управление проектом (значок шестеренки).

  2. Выберите Панель управления .

  3. Выберите Пулы агентов .

Вы можете создавать очереди агентов и управлять ими на вкладке «Очереди агентов» в настройках проекта.

Если вы являетесь членом группы проекта, вы можете создавать очереди агентов и управлять ими на вкладке пулы агентов в настройках проекта.

Перейдите к своему проекту и выберите Настройки проекта , Пулы агентов .

Перейдите к своему проекту и выберите Настройки проекта , Пулы агентов .

Перейдите к своему проекту и выберите Настройки проекта , Пулы агентов .

Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  1. Перейдите к своему проекту и выберите Управление проектом (значок шестеренки).

  2. Выберите Панель управления .

  3. Выберите желаемую коллекцию проектов и выберите Просмотр страницы администрирования коллекции .

    1. Выберите Очереди агентов (для TFS 2015 выберите Сборка , а затем Очереди ).

Пулы агентов по умолчанию

По умолчанию предоставляются следующие пулы агентов:

  • Размещенный пул Azure Pipelines с различными образами Windows, Linux и macOS.Полный список доступных образов и установленного в них программного обеспечения см. В разделе «Агенты, размещенные на сервере Microsoft».

    Примечание

    Размещенный пул Azure Pipelines заменяет предыдущие размещенные пулы, имена которых сопоставлены с соответствующими образами. Любые задания, которые у вас были в предыдущих размещенных пулах, автоматически перенаправляются на правильный образ в новом размещенном пуле Azure Pipelines. В некоторых случаях вы все еще можете видеть старые имена пулов, но за кулисами размещенные задания выполняются с использованием пула Azure Pipelines.Дополнительные сведения см. В примечаниях к выпуску единого размещенного пула из примечаний к выпуску Sprint 154 от 1 июля 2019 г.

По умолчанию все участники проекта являются участниками роли Пользователь в размещенных пулах. Это позволяет каждому участнику проекта создавать и запускать конвейеры с помощью агентов, размещенных в Microsoft.

Выбор пула и агента в вашем трубопроводе

Чтобы выбрать агент, размещенный на сервере Microsoft, из пула Azure Pipelines в конвейере YAML Azure DevOps Services, укажите имя образа, используя YAML Image Label из этой таблицы.

  бассейн:
  vmImage: убунту-16.04
  

Чтобы использовать частный бассейн без требований:

  бассейн: MyPool
  

Для получения дополнительной информации см. Схему YAML для пулов.

Чтобы выбрать пул и агент в классическом редакторе, перейдите к настройкам конвейера, выберите желаемый Пул агентов , а затем желаемое изображение из раскрывающегося списка Спецификация агента . Для получения дополнительных сведений о программном обеспечении, установленном на изображениях, размещенных в Microsoft, см. Соответствующую запись в столбце Classic Editor Pool этой таблицы.

Управление пулами и очередями

Вы можете создавать пулы агентов и управлять ими на вкладке «Пулы агентов» в настройках администратора.

Если вы являетесь администратором организации, вы можете создавать пулы агентов и управлять ими на вкладке «Пулы агентов» в настройках администратора.

  1. Выберите Azure DevOps , Параметры организации .

  2. Выберите Пулы агентов .

  1. Выберите Azure DevOps , Параметры коллекции .

  2. Выберите Пулы агентов .

  1. Выберите Azure DevOps , Параметры коллекции .

  2. Выберите Пулы агентов .

  1. Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  2. Выберите Управление пулами .

  1. Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  2. Выберите Управление пулами .

  1. Перейдите к своему проекту и выберите Управление проектом (значок шестеренки).

  2. Выберите Панель управления .

  3. Выберите Пулы агентов .

Вы можете создавать очереди агентов и управлять ими на вкладке «Очереди агентов» в настройках проекта.

Если вы являетесь членом группы проекта, вы можете создавать очереди агентов и управлять ими на вкладке пулы агентов в настройках проекта.

Перейдите к своему проекту и выберите Настройки проекта , Пулы агентов .

Перейдите к своему проекту и выберите Настройки проекта , Пулы агентов .

Перейдите к своему проекту и выберите Настройки проекта , Пулы агентов .

Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  1. Перейдите к своему проекту и выберите Управление проектом (значок шестеренки).

  2. Выберите Панель управления .

  3. Выберите желаемую коллекцию проектов и выберите Просмотр страницы администрирования коллекции .

    1. Выберите Очереди агентов (для TFS 2015 выберите Сборка , а затем Очереди ).

Список пулов агентов | Показать детали пула агентов | Список очередей агентов | Показать сведения об очереди агента

Примечание

В настоящее время вы можете просматривать информацию о пулах агентов и очередях, но не редактировать их, используя Azure CLI.

Если вы впервые используете команду az DevOps pipelines , см. Раздел Начало работы с Azure DevOps CLI.

Список пулов агентов

  az pipelines pool list [--action {manage, none, use}]
                       [--detect {ложь, истина}]
                       [--org]
                       [--pool-name]
                       [--pool-type {автоматизация, развертывание}]
  
Параметры
  • действие : отфильтровать список с разрешенными действиями пользователя. Допустимые значения: управлять , нет , использовать
  • обнаружение : автоматическое обнаружение организации.Допустимые значения: false , true
  • org или organization : URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию, используя az DevOps configure -d organization = ORG_URL. Требуется, если не настроен по умолчанию или получен через git config. Пример: https://dev.azure.com/MyOrganizationName/ .
  • имя-пула : отфильтруйте список с совпадающим именем пула.
  • тип пула : отфильтруйте список по типу пула.Допустимые значения: автоматизация , развертывание
Пример

В следующем примере перечислены все пулы в табличном формате. В этом примере используется следующая конфигурация по умолчанию: az DevOps configure --defaults organization = https: //dev.azure.com/fabrikam-tailspin project = FabrikamFiber

  az pipelines pool list - таблица вывода

Имя идентификатора - это тип размещенного пула
---- ------------------------------- ----------- ---- -------
1 По умолчанию Ложная автоматизация
2 Истинная автоматизация на хостинге
3 Хостинг VS2017 Настоящая автоматизация
4 Размещенная Windows 2019 с VS2019 Настоящая автоматизация
5 Размещенный контейнер Windows Настоящая автоматизация
6 Размещенная macOS Настоящая автоматизация
7 Размещенная на MacOS High Sierra настоящая автоматизация
8 Размещенная Ubuntu 1604 Настоящая автоматизация
9 Azure Pipelines Настоящая автоматизация
10 MyAgentPool Ложная автоматизация
  

Показать подробности пула агентов

  az pipelines pool show --id
                       [--action {управлять, нет, использовать}]
                       [--detect {ложь, истина}]
                       [--org]
  
Параметры
  • id или pool-id : (Обязательный) ID пула для отображения деталей.
  • действие : Отфильтровать список с разрешенными действиями пользователя. Допустимые значения: управлять , нет , использовать
  • обнаружение : автоматическое обнаружение организации. Допустимые значения: false , true
  • org или organization : URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию, используя az DevOps configure -d organization = ORG_URL. Требуется, если не настроен по умолчанию или получен через git config.Пример: https://dev.azure.com/MyOrganizationName/ .
Пример

В следующем примере отображаются сведения о пуле размещенных Windows 2019 с пулом VS2019. В этом примере используется следующая конфигурация по умолчанию: az DevOps configure --defaults organization = https: //dev.azure.com/fabrikam-tailspin project = FabrikamFiber

  az pipelines pool show --id 4

{
  "agentCloudId": 1,
  "autoProvision": правда,
  "autoSize": ноль,

  <Некоторые свойства опущены для пробела>

  "poolType": "автоматизация",
  "свойства": ноль,
  "scope": "941fcaeb-be37-4309-b7b0-5cf156e1236e",
  «размер»: 1,
  "targetSize": 1
}
  

Вы также можете использовать --output table , которая возвращает ту же информацию, что и команда list .

  az pipelines pool show --id 4 - выходная таблица

Имя идентификатора - это тип размещенного пула
---- ------------------------------- ----------- ---- -------
4 Размещенная Windows 2019 с VS2019 Настоящая автоматизация
  

Список очередей агентов

  az pipelines queue list [--action {manage, none, use}]
                        [--detect {ложь, истина}]
                        [--org]
                        [--проект]
                        [--queue-name]
  
Параметры
  • действие : отфильтровать список с разрешенными действиями пользователя.Допустимые значения: управлять , нет , использовать
  • обнаружение : автоматическое обнаружение организации. Допустимые значения: false , true
  • org или organization : URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию, используя az DevOps configure -d organization = ORG_URL. Требуется, если не настроен по умолчанию или получен через git config. Пример: https://dev.azure.com/MyOrganizationName/ .
  • проект или p : Название или идентификатор проекта. Вы можете настроить проект по умолчанию, используя az DevOps configure -d project = NAME_OR_ID . Требуется, если не настроен по умолчанию или получен через git config.
  • имя-очереди : отфильтровать список с помощью регулярного выражения с совпадающим именем очереди. например ubuntu для очереди с именем Hosted Ubuntu 1604.
Пример

В следующем примере перечислены все очереди в табличном формате.В этом примере используется следующая конфигурация по умолчанию: az DevOps configure --defaults organization = https: //dev.azure.com/fabrikam-tailspin project = FabrikamFiber

  az pipelines queue list - выходная таблица
Эта группа команд находится в предварительном просмотре. Он может быть изменен / удален в будущем выпуске.
ID Имя Пул IsHosted Тип пула
---- ------------------------------- --------------- -----------
11 По умолчанию Ложная автоматизация
12 Истинная автоматизация на хостинге
13 Хостинг VS2017 Настоящая автоматизация
14 Размещенная Windows 2019 с VS2019 Настоящая автоматизация
15 Размещенный контейнер Windows Настоящая автоматизация
16 Размещенная macOS Настоящая автоматизация
17 Размещенная в macOS High Sierra настоящая автоматизация
18 Размещенная Ubuntu 1604 Настоящая автоматизация
19 Azure Pipelines Настоящая автоматизация
  

Показать сведения об очереди агента

  az pipelines queue show --id
                        [--action {управлять, нет, использовать}]
                        [--detect {ложь, истина}]
                        [--org]
                        [--проект]
  
Параметры
  • id или queue-id : идентификатор очереди агента, о которой нужно получить информацию.
  • действие : Отфильтровать список с разрешенными действиями пользователя. Допустимые значения: управлять , нет , использовать
  • обнаружение : автоматическое обнаружение организации. Допустимые значения: false , true
  • org или organization : URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию, используя az DevOps configure -d organization = ORG_URL. Требуется, если не настроен по умолчанию или получен через git config.Пример: https://dev.azure.com/MyOrganizationName/ .
  • проект или p : Название или идентификатор проекта. Вы можете настроить проект по умолчанию, используя az DevOps configure -d project = NAME_OR_ID . Требуется, если не настроен по умолчанию или получен через git config.
Пример

В следующем примере отображаются сведения об очереди для размещенной Windows 2019 с очередью VS2019. В этом примере используется следующая конфигурация по умолчанию: az DevOps configure --defaults organization = https: // dev.azure.com/fabrikam-tailspin project = FabrikamFiber

  az pipelines queue show --id 14

{
  "id": 14,
  "name": "Размещенная Windows 2019 с VS2019",
  "бассейн": {
    "id": 4,
    "isHosted": правда,
    "isLegacy": правда,
    "name": "Размещенная Windows 2019 с VS2019",
    "poolType": "автоматизация",
    "scope": "941fcaeb-be37-4309-b7b0-5cf156e1236e",
    «размер»: 1
  },
  "projectId": "16836457-4ce1-4e77-b97a-e7e0c6508e84"
}
  

Команды интерфейса командной строки Azure DevOps не поддерживаются для Azure DevOps Server 2019 и более ранних версий.

Пулы используются для выполнения заданий. Узнайте об указании пулов для заданий.

Если у вас много автономных агентов, предназначенных для разных команд или целей, вы можете создать дополнительные пулы, как описано ниже.

Создание пулов агентов

Вот несколько типичных ситуаций, когда вы можете захотеть создать пулы агентов с собственным хостом:

  • Вы являетесь участником проекта и хотите использовать набор машин, принадлежащих вашей группе, для выполнения заданий сборки и развертывания.Во-первых, убедитесь, что у вас есть разрешения на создание пулов в вашем проекте, выбрав Security на странице пулов агентов в настройках вашего проекта. У вас должна быть роль Администратор , чтобы иметь возможность создавать новые пулы. Затем выберите Добавить пул и выберите вариант создания нового пула на уровне организации. Наконец, установите и настройте агентов, чтобы они были частью этого пула агентов.

  • Вы являетесь членом группы инфраструктуры и хотите создать пул агентов для использования во всех проектах.Сначала убедитесь, что вы являетесь членом группы в Все пулы агентов с ролью Администратор , перейдя на страницу пулов агентов в настройках вашей организации. Затем создайте Новый пул агентов и выберите опцию Автоматическая подготовка соответствующих пулов агентов во всех проектах при создании пула. Этот параметр гарантирует, что все проекты имеют доступ к этому пулу агентов. Наконец, установите и настройте агентов, чтобы они были частью этого пула агентов.

  • Вы хотите использовать набор машин с агентами для нескольких проектов, но не для всех.Сначала перейдите к настройкам одного из проектов, добавьте пул агентов и выберите вариант создания нового пула на уровне организации. Затем перейдите к каждому из других проектов и создайте пул в каждом из них, выбрав опцию Использовать существующий пул агентов из организации . Наконец, установите и настройте агенты, чтобы они были частью общего пула агентов.

  • Вы являетесь участником проекта и хотите использовать набор машин, принадлежащих вашей группе, для выполнения заданий сборки и развертывания.Во-первых, убедитесь, что вы являетесь членом группы в All Pools с ролью Administrator . Затем создайте Новый пул агентов проекта в настройках вашего проекта и выберите опцию Создать новый пул агентов организации . В результате будет создан пул агентов как на уровне организации, так и на уровне проекта. Наконец, установите и настройте агентов, чтобы они были частью этого пула агентов.

  • Вы являетесь членом группы инфраструктуры и хотите создать пул агентов для использования во всех проектах.Сначала убедитесь, что вы являетесь членом группы в All Pools с ролью Administrator . Затем создайте пул агентов новой организации в настройках администратора и выберите опцию Автоматическая подготовка соответствующих пулов агентов проекта во всех проектах при создании пула. Этот параметр гарантирует, что все проекты имеют пул, указывающий на пул агентов организации. Система создает пул для существующих проектов, и в будущем он будет делать это при создании нового проекта.Наконец, установите и настройте агентов, чтобы они были частью этого пула агентов.

  • Вы хотите использовать набор машин с агентами для нескольких проектов, но не для всех. Сначала создайте пул агентов проекта в одном из проектов и выберите опцию Создать новый пул агентов организации при создании этого пула. Затем перейдите к каждому из других проектов и создайте пул в каждом из них, выбрав опцию Использовать существующий пул агентов организации .Наконец, установите и настройте агенты, чтобы они были частью общего пула агентов.

Безопасность пулов агентов

Понимание того, как работает безопасность для пулов агентов, поможет вам контролировать совместное использование и использование агентов.

Роли определены для каждого пула агентов, а членство в этих ролях определяет, какие операции вы можете выполнять с пулом агентов.

Роль в пуле агентов в настройках организации Назначение
Считыватель Члены этой роли могут просматривать пул агентов, а также агентов.Обычно это используется для добавления операторов, которые отвечают за мониторинг агентов и их состояния.
Сервисный счет Члены этой роли могут использовать пул агентов организации для создания пула агентов проекта в проекте. Если вы следуете приведенным выше инструкциям по созданию новых пулов агентов проекта, вам обычно не нужно добавлять сюда каких-либо участников.
Администратор В дополнение ко всем вышеперечисленным разрешениям члены этой роли могут регистрировать или отменять регистрацию агентов из пула агентов организации.Они также могут ссылаться на пул агентов организации при создании пула агентов проекта в проекте. Наконец, они также могут управлять членством для всех ролей пула агентов организации. Пользователь, создавший пул агентов организации, автоматически добавляется к роли администратора для этого пула.

Узел Все пулы агентов на вкладке Пулы агентов используется для управления безопасностью всех пулов агентов организации . Членство в ролях для отдельных пулов агентов организации автоматически наследуется от ролей узла «Все пулы агентов».При использовании TFS или Azure DevOps Server по умолчанию администраторы TFS и Azure DevOps Server также являются администраторами узла «Все пулы агентов».

Роли также определены для каждого пула агентов проекта, и членство в этих ролях определяет, какие операции вы можете выполнять с пулом агентов на уровне проекта.

Роль в пуле агентов в настройках проекта Назначение
Считыватель Члены этой роли могут просматривать пул агентов проекта.Обычно это используется для добавления операторов, которые отвечают за мониторинг заданий сборки и развертывания в этом пуле агентов проекта.
Пользователь Члены этой роли могут использовать пул агентов проекта при создании конвейеров.
Администратор В дополнение ко всем вышеуказанным операциям члены этой роли могут управлять членством для всех ролей пула агентов проекта. Пользователь, создавший пул, автоматически добавляется к роли администратора для этого пула.

Узел Все пулы агентов на вкладке Пулы агентов используется для управления безопасностью всех пулов агентов проекта в проекте. Членство в ролях для отдельных пулов агентов проекта автоматически наследуется от ролей узла «Все пулы агентов». По умолчанию к роли администратора «Все пулы агентов» добавляются следующие группы: «Администраторы сборки», «Администраторы выпуска», «Администраторы проекта».

Действие Безопасность на вкладке Пулы агентов используется для управления безопасностью всех пулов агентов проекта в проекте.Членство в ролях для отдельных пулов агентов проекта автоматически наследуется от того, что вы определяете здесь. По умолчанию к роли администратора «Все пулы агентов» добавляются следующие группы: «Администраторы сборки», «Администраторы выпуска», «Администраторы проекта».

TFS 2015

В TFS 2015 специальные группы определены в пулах агентов, и членство в этих группах определяет, какие операции вы можете выполнять.

Члены Администраторы пула агентов могут регистрировать новых агентов в пуле и добавлять дополнительных пользователей в качестве администраторов или учетных записей служб.

Добавьте людей в группу администраторов пула агентов, чтобы предоставить им разрешение на управление всеми пулами агентов. Это позволяет людям создавать новые пулы и изменять все существующие пулы. Члены группы администраторов Team Foundation также могут выполнять все эти операции.

Пользователи в группе Учетные записи служб пула агентов имеют разрешение на прослушивание очереди сообщений для определенного пула для получения работы. В большинстве случаев вам не нужно управлять членами этой группы.Об этом позаботится процесс регистрации агента. Учетная запись службы, которую вы указываете для агента (обычно сетевая служба), автоматически добавляется при регистрации агента.

FAQ

Если я не запланирую окно обслуживания, когда агенты выполнят обслуживание?

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

Что такое техническое обслуживание?

Вы можете настроить пулы агентов на периодическую очистку устаревших рабочих каталогов и репозиториев.Это должно снизить вероятность того, что агентам не хватит дискового пространства. Задания обслуживания настраиваются на уровне коллекции проектов или организации в настройках пула агентов.

Для настройки параметров технического обслуживания:

  1. Выберите Azure DevOps , Параметры организации .

  2. Выберите Пулы агентов .

  1. Выберите Azure DevOps , Параметры коллекции .

  2. Выберите Пулы агентов .

  1. Выберите Azure DevOps , Параметры коллекции .

  2. Выберите Пулы агентов .

  1. Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  2. Выберите Управление пулами .

  1. Перейдите к своему проекту и выберите Настройки (значок шестеренки)> Очереди агентов .

  2. Выберите Управление пулами .

  1. Перейдите к своему проекту и выберите Управление проектом (значок шестеренки).

  2. Выберите Панель управления .

  3. Выберите Пулы агентов .

Выберите желаемый пул и выберите Параметры , чтобы настроить параметры задания обслуживания для этого пула агентов.

Важно

У вас должно быть разрешение «Управление очередями сборки», чтобы настроить параметры задания обслуживания. Если вы не видите вкладку Settings или Maintenance History , у вас нет этого разрешения, которое по умолчанию предоставляется роли Administrator . Для получения дополнительной информации см. Безопасность пулов агентов.

Задайте нужные параметры и выберите Сохранить .

Выберите История обслуживания , чтобы просмотреть историю заданий обслуживания для текущего пула агентов. Вы можете загружать и просматривать журналы, чтобы увидеть шаги очистки и предпринятые действия.

Обслуживание выполняется для пула агентов, а не для каждой машины; поэтому, если у вас есть несколько пулов агентов на одной машине, вы все равно можете столкнуться с проблемами дискового пространства.

Я пытаюсь создать пул агентов проекта, который использует существующий пул агентов организации, но элементы управления неактивны. Почему?

В диалоговом окне «Создание пула агентов проекта» нельзя использовать существующий пул агентов организации, если на него уже ссылается другой пул агентов проекта. На каждый пул агентов организации может ссылаться только один пул агентов проекта в данной коллекции проектов.

Я не могу выбрать пул, размещенный в Microsoft, и не могу поставить свою сборку в очередь.Как это исправить?

Попросите владельца вашей организации Azure DevOps предоставить вам разрешение на использование пула. См. Безопасность пулов агентов.

Мне нужно больше размещенных ресурсов сборки. Что я могу сделать?

A: Пул Azure Pipelines предоставляет всем организациям Azure DevOps размещенные в облаке агенты сборки и бесплатные минуты сборки каждый месяц. Если вам нужно больше ресурсов сборки, размещенных в Microsoft, или вам нужно выполнять больше заданий параллельно, вы можете:

Job - Обновление - REST API (пакетная служба Azure)

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

В этой статье

  PUT {batchUrl} / jobs / {jobId}? Api-version = 2021-06-01.14.0  

С дополнительными параметрами:

  PUT {batchUrl} / jobs / {jobId}? Timeout = {timeout} & api-version = 2021-06-01.14,0  

Параметры URI

Имя В Требуется Тип Описание

партия Урл

путь Правда

Базовый URL-адрес для всех запросов пакетной службы Azure.

вакансия Id

путь Правда

Идентификатор задания, свойства которого вы хотите обновить.

api-версия

запрос Правда

Версия клиентского API.

таймаут

запрос int32

Максимальное время, которое сервер может потратить на обработку запроса, в секундах. По умолчанию 30 секунд.

Заголовок запроса

Типы носителей: "application / json; odata = minimalmetadata"

Имя Требуется Тип Описание
идентификатор-запроса-клиента uuid

Идентификатор запроса, сгенерированный вызывающим абонентом, в форме GUID без украшения, такого как фигурные скобки, например 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.

возврат-идентификатор-запроса-клиента

Должен ли сервер возвращать идентификатор-запроса-клиента в ответе.

ocp-date дата-время-rfc1123

Время отправки запроса. Клиентские библиотеки обычно устанавливают текущее системное время; установите его явно, если вы вызываете REST API напрямую.

Если совпадение

Значение ETag, связанное с версией ресурса, известной клиенту.Операция будет выполнена только в том случае, если текущий ETag ресурса в службе точно соответствует значению, указанному клиентом.

Если-нет-совпадение

Значение ETag, связанное с версией ресурса, известной клиенту. Операция будет выполнена только в том случае, если текущий ETag ресурса в службе не соответствует значению, указанному клиентом.

If-Modified-Since дата-время-rfc1123

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

Если-Неизмененный-С дата-время-rfc1123

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

Тело запроса

Типы носителей: "application / json; odata = minimalmetadata"

Имя Требуется Тип Описание
poolInfo Правда

Пул, в котором пакетная служба запускает задачи задания.
Вы можете изменить пул для задания, только если задание отключено. Вызов задания обновления завершится ошибкой, если вы включите элемент poolInfo и задание не отключено. Если вы укажете autoPoolSpecification в poolInfo, можно будет обновить только свойство keepAlive autoPoolSpecification, и то только в том случае, если autoPoolSpecification имеет poolLifetimeOption of Job (другие свойства задания могут быть обновлены как обычно).

ограничения

Ограничения выполнения для задания.
Если опущено, ограничения снимаются.

метаданные

Список пар имя-значение, связанных с заданием как метаданные.
Если опущено, принимает значение по умолчанию - пустой список; по сути, все существующие метаданные удаляются.

onAllTasksComplete

Действие, которое должна предпринять пакетная служба, когда все задачи в задании находятся в завершенном состоянии.
Если опущено, поведение завершения устанавливается на отсутствие действий. Если текущее значение terminatejob, это ошибка, потому что поведение завершения Job не может быть изменено с terminatejob на noaction. Вы не можете изменить значение с terminatejob на noaction, то есть после того, как вы включили автоматическое завершение Job, вы не сможете снова отключить его. Если вы попытаетесь сделать это, запрос не будет выполнен, а пакетная служба вернет код состояния 400 (неверный запрос) и ответ с ошибкой «недопустимое значение свойства». Если вы не укажете этот элемент в запросе PUT, это эквивалентно передаче noaction.Это ошибка, если текущее значение - terminatejob.

приоритет

Приоритет задания.
Значения приоритета могут находиться в диапазоне от -1000 до 1000, где -1000 - самый низкий приоритет, а 1000 - самый высокий. Если опущено, устанавливается значение по умолчанию 0.

Ответы

Имя Тип Описание
200 ОК

Запрос к пакетной службе был успешным.

Заголовки

  • идентификатор-запроса-клиента: строка
  • идентификатор запроса: строка
  • ETag: строка
  • Последнее изменение: строка
  • DataServiceId: строка
Другие коды состояния

Ошибка пакетной службы.

Безопасность

azure_auth

Поток OAuth3 для Azure Active Directory

Тип: oauth3
Поток: неявный
URL-адрес авторизации: https: // войти.microsoftonline.com/common/oauth3/authorize

Прицелы
Имя Описание
user_impersonation Выдайте себя за свою учетную запись пользователя

Авторизация

Тип: apiKey
В: заголовок

Примеры

Обновление вакансии

Образец запроса
  PUT счет.region.batch.azure.com/jobs/jobId?api-version=2021-06-01.14.0
идентификатор-запроса-клиента: 00000000-0000-0000-0000-000000000000
ocp-date: пт, 17 фев 2017, 00:00:00 GMT  
  {
  «приоритет»: 100,
  "constraints": {
    "maxWallClockTime": "PT1H",
    «maxTaskRetryCount»: -1
  },
  "poolInfo": {
    "poolId": "poolId"
  }
}  

Определения

ApplicationPackage Ссылка

Ссылка на пакет, который будет развернут на вычислительных узлах.

Имя Тип Описание
applicationId

Идентификатор развертываемого приложения.

версия

Версия развертываемого приложения. Если не указано, развертывается версия по умолчанию.
Если это опущено в пуле и для этого приложения не указана версия по умолчанию, запрос завершается ошибкой с кодом InvalidApplicationPackageReferences и кодом состояния HTTP 409.Если это опущено в Задаче и для этого приложения не указана версия по умолчанию, Задача завершается с ошибкой предварительной обработки.

AutoPoolSpecification

Задает характеристики временного «автоматического пула». Пакетная служба создаст этот автоматический пул при отправке задания.

Имя Тип Описание
autoPoolIdPrefix

Префикс, добавляемый к уникальному идентификатору при автоматическом создании пула.
Пакетная служба присваивает каждому автоматическому пулу уникальный идентификатор при создании. Чтобы различать пулы, созданные для разных целей, вы можете указать этот элемент, чтобы добавить префикс к назначенному идентификатору. Префикс может содержать до 20 символов.

keepAlive

Сохранять ли автоматический пул активным после истечения его срока службы.
Если false, пакетная служба удаляет пул по истечении его времени жизни (как определено параметром poolLifetimeOption); то есть, когда работа или расписание работы завершены.Если true, пакетная служба не удаляет пул автоматически. Пользователь может удалить автоматические пулы, созданные с помощью этой опции.

бассейн

Спецификация пула для автоматического пула.

poolLifetimeOption

Минимальное время жизни созданных автоматических пулов и то, как несколько заданий по расписанию назначаются пулам.

AutoUserScope

Прицел для автопользователя

Имя Тип Описание
бассейн

Указывает, что Задача запускается как обычная автоматическая учетная запись пользователя, которая создается на каждом вычислительном узле в пуле.

задача

Указывает, что служба должна создать нового пользователя для Задачи.

AutoUserSpecification

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

Имя Тип Описание
высотаLevel

Уровень повышения автопользователя.
Значение по умолчанию - nonAdmin.

сфера

Область действия автоматического пользователя
Значение по умолчанию - пул. Если пул работает под управлением Windows, следует указать значение Task, если требуется более строгая изоляция между задачами. Например, если задача изменяет реестр таким образом, чтобы это могло повлиять на другие задачи, или если в пуле указаны сертификаты, которые не должны быть доступны для обычных задач, но должны быть доступны для StartTasks.

AzureBlobFileSystemConfiguration

Информация, используемая для подключения к контейнеру хранилища Azure с помощью Blobfuse.

Имя Тип Описание
accountKey

Ключ учетной записи хранения Azure.
Это свойство является взаимоисключающим как с sasKey, так и с идентификатором; должен быть указан ровно один.

название аккаунта

Имя учетной записи хранения Azure.

blobfuseOptions

Дополнительные параметры командной строки для передачи команде монтирования.
Это параметры «чистого использования» в Windows и параметры «монтирования» в Linux.

containerName

Имя контейнера хранилища BLOB-объектов Azure.

identityReference

Ссылка на назначенный пользователем идентификатор для использования для доступа к containerName
Это свойство является взаимоисключающим как для accountKey, так и для sasKey; должен быть указан ровно один.

relativeMountPath

Относительный путь на вычислительном узле, где будет смонтирована файловая система.
Все файловые системы смонтированы относительно каталога пакетного монтирования, доступного через переменную среды AZ_BATCH_NODE_MOUNTS_DIR.

sasKey

Маркер SAS службы хранилища Azure.
Это свойство является взаимоисключающим как с accountKey, так и с идентификатором; должен быть указан ровно один.

AzureFileShareConfiguration

Информация, используемая для подключения к Azure Fileshare.

Имя Тип Описание
accountKey

Ключ учетной записи хранения Azure.

название аккаунта

Имя учетной записи хранения Azure.

azureFileUrl

URL-адрес файлов Azure.
Это форма "https: // {account} .file.core.windows.net /".

mountOptions

Дополнительные параметры командной строки для передачи команде монтирования.
Это параметры «чистого использования» в Windows и параметры «монтирования» в Linux.

relativeMountPath

Относительный путь на вычислительном узле, где будет смонтирована файловая система.
Все файловые системы смонтированы относительно каталога пакетного монтирования, доступного через переменную среды AZ_BATCH_NODE_MOUNTS_DIR.

BatchError

От пакетной службы Azure получен ответ об ошибке.

Имя Тип Описание
код

Идентификатор ошибки. Коды инвариантны и предназначены для программного использования.

сообщение

Сообщение с описанием ошибки, предназначенное для отображения в пользовательском интерфейсе.

ценности

Коллекция пар "ключ-значение", содержащая дополнительные сведения об ошибке.

BatchErrorDetail

Элемент дополнительной информации, включенный в ответ об ошибке пакетной службы Azure.

Имя Тип Описание
ключ

Идентификатор, определяющий значение свойства Value.

ценить

Дополнительная информация, включенная в ответ об ошибке.

CachingType

Тип кэширования для диска.

Имя Тип Описание
никто

Не включен режим кэширования для диска.

только чтение

Режим кэширования для диска - только чтение.

читай пиши

Режим кэширования для диска - чтение и запись.

Сертификат Ссылка

Ссылка на сертификат, который должен быть установлен на вычислительных узлах в пуле.

Имя Тип Описание
storeLocation

Расположение хранилища сертификатов на вычислительном узле, в которое устанавливается сертификат.
Значение по умолчанию - currentuser. Это свойство применимо только для пулов, настроенных с помощью вычислительных узлов Windows (то есть созданных с помощью cloudServiceConfiguration или с помощью virtualMachineConfiguration, используя ссылку на образ Windows). Для вычислительных узлов Linux сертификаты хранятся в каталоге внутри рабочего каталога Задачи, а переменная среды AZ_BATCH_CERTIFICATES_DIR предоставляется Задаче для запроса этого местоположения. Для сертификатов с видимостью 'remoteUser' каталог 'certs' создается в домашнем каталоге пользователя (например,.g., / home / {user-name} / certs) и сертификаты помещаются в этот каталог.

название магазина

Имя хранилища сертификатов на вычислительном узле, в которое устанавливается сертификат.
Это свойство применимо только для пулов, настроенных с помощью вычислительных узлов Windows (то есть созданных с помощью cloudServiceConfiguration или с помощью virtualMachineConfiguration, используя ссылку на образ Windows). Общие имена магазинов включают: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, но также можно использовать любое настраиваемое имя магазина.Значение по умолчанию - My.

отпечаток большого пальца

Отпечаток сертификата.

thumbprintAlgorithm

Алгоритм, с которым связан отпечаток. Это должно быть sha1.

видимость

Какие учетные записи пользователей на вычислительном узле должны иметь доступ к личным данным сертификата.
В этой коллекции можно указать несколько областей видимости. По умолчанию все Учетные записи.

Сертификат Магазин Расположение

Расположение хранилища сертификатов на вычислительном узле, в которое устанавливается сертификат.

Имя Тип Описание
текущий пользователь

Сертификаты должны быть установлены в хранилище сертификатов CurrentUser.

местная машина Сертификаты

должны быть установлены в хранилище сертификатов LocalMachine.

CIFSMountConfiguration

Информация, используемая для подключения к файловой системе CIFS.

Имя Тип Описание
mountOptions

Дополнительные параметры командной строки для передачи команде монтирования.
Это параметры «чистого использования» в Windows и параметры «монтирования» в Linux.

пароль

Пароль для аутентификации в файловой системе CIFS.

relativeMountPath

Относительный путь на вычислительном узле, где будет смонтирована файловая система.
Все файловые системы смонтированы относительно каталога пакетного монтирования, доступного через переменную среды AZ_BATCH_NODE_MOUNTS_DIR.

источник

URI монтируемой файловой системы.

имя пользователя

Пользователь, который будет использоваться для аутентификации в файловой системе CIFS.

CloudServiceConfiguration

Конфигурация для вычислительных узлов в пуле на основе платформы облачных служб Azure.

Имя Тип Описание
osFamily

Семейство гостевых ОС Azure для установки на виртуальные машины в пуле.
Возможные значения: 2 - Семейство ОС 2, эквивалент Windows Server 2008 R2 SP1. 3 - Семейство ОС 3, эквивалент Windows Server 2012. 4 - Семейство ОС 4, эквивалент Windows Server 2012 R2. 5 - Семейство ОС 5, эквивалент Windows Server 2016. 6 - Семейство ОС 6, эквивалент Windows Server 2019. Дополнительные сведения см. В разделе «Выпуски гостевых ОС Azure» (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases).

osVersion

Версия гостевой ОС Azure, которая будет установлена ​​на виртуальных машинах в пуле.
Значение по умолчанию - *, что указывает на последнюю версию операционной системы для указанного семейства ОС.

ComputeNodeFillType

Как задачи распределяются по вычислительным узлам в пуле.

Имя Тип Описание
пакет

Как можно больше задач (taskSlotsPerNode) должно быть назначено каждому вычислительному узлу в пуле, прежде чем какие-либо задачи будут назначены следующему вычислительному узлу в пуле.

распространять

Задачи должны быть равномерно распределены по всем вычислительным узлам в пуле.

ComputeNodeIdentityReference

Ссылка на назначенный пользователем идентификатор, связанный с пулом пакетной обработки, который будет использовать вычислительный узел.

Имя Тип Описание
resourceId

Идентификатор ресурса ARM назначенного пользователем идентификатора.

Конфигурация контейнера

Конфигурация для пулов с включенными контейнерами.

Имя Тип Описание
containerImageNames

Коллекция имен образов контейнеров.
Это полная ссылка на изображение, как это было бы указано для "docker pull". Образ будет получен из реестра Docker по умолчанию, если образ не будет полностью квалифицирован с помощью альтернативного реестра.

containerRegistries

Дополнительные частные реестры, из которых можно извлекать контейнеры.
Если какие-либо изображения должны быть загружены из частного реестра, для которого требуются учетные данные, то эти учетные данные должны быть предоставлены здесь.

тип

Используемая контейнерная технология.

Реестр контейнеров

Частный реестр контейнеров.

Имя Тип Описание
identityReference

Ссылка на назначенное пользователем удостоверение для использования для доступа к реестру контейнеров Azure вместо имени пользователя и пароля.
Ссылка на назначенный пользователем идентификатор, связанный с пулом пакетной обработки, который будет использовать вычислительный узел.

пароль

Пароль для входа на сервер реестра.

registryServer

URL-адрес реестра.
Если не указано, по умолчанию используется «docker.io».

имя пользователя

Имя пользователя для входа на сервер реестра.

Тип контейнера

Используемая контейнерная технология.

Имя Тип Описание
dockerCompatible

Для запуска контейнеров будет использоваться Docker-совместимая контейнерная технология.

ContainerWorkingDirectory

Расположение рабочего каталога задачи контейнера.

Имя Тип Описание
containerImageDefault

Использовать рабочий каталог, определенный в образе контейнера. Помните, что этот каталог не будет содержать файлы ресурсов, загруженные пакетной службой.

taskWorkingDirectory

Используйте стандартный рабочий каталог задач пакетной службы, который будет содержать файлы ресурсов задачи, заполненные пакетной службой.

Диск данных

Параметры, которые будут использоваться дисками данных, связанными с вычислительными узлами в пуле. При использовании подключенных дисков с данными вам необходимо смонтировать и отформатировать диски из виртуальной машины, чтобы использовать их.

Размещение DiffDisk

Задает временное размещение диска операционной системы для всех вычислительных узлов (виртуальных машин) в пуле.

Имя Тип Описание
CacheDisk

Эфемерный диск ОС хранится в кэше виртуальной машины.

DiffDiskSettings

Задает временные параметры диска для диска операционной системы, используемого вычислительным узлом (ВМ).

DiskEncryptionConfiguration

Конфигурация шифрования диска, примененная к вычислительным узлам в пуле. Конфигурация шифрования диска не поддерживается в пуле Linux, созданном с помощью Shared Image Gallery Image.

Имя Тип Описание
цели

Список целевых дисков. Пакетная служба зашифрует на вычислительном узле.
Если опущено, никакие диски на вычислительных узлах в пуле не будут зашифрованы. В пуле Linux поддерживается только «TemporaryDisk»; в пуле Windows должны быть указаны OsDisk и TemporaryDisk.

DynamicVNetAssignmentScope

Объем динамического назначения vnet.

Имя Тип Описание
работа

Назначение динамической виртуальной сети выполняется для каждого задания.

никто

Не включено динамическое назначение виртуальной сети.

Уровень

Повышенный уровень пользователя.

Имя Тип Описание
админ

Пользователь является пользователем с повышенными правами доступа и работает с полными правами администратора.

неадмин

Пользователь является стандартным пользователем без повышенных прав доступа.

Настройка среды

Переменная среды, которая должна быть установлена ​​в процессе задачи.

Имя Тип Описание
имя

Имя переменной среды.

ценить

Значение переменной среды.

Сообщение об ошибке

В ответе об ошибке пакетной службы Azure получено сообщение об ошибке.

Имя Тип Описание
язык

Код языка сообщения об ошибке

ценить

Текст сообщения.

Ссылка на изображение

Ссылка на образ из Marketplace виртуальных машин Azure или общий образ галереи изображений.Чтобы получить список всех ссылок на образы Azure Marketplace, проверенных пакетной службой Azure, см. Операцию «Список поддерживаемых образов».

Имя Тип Описание
точная версия

Конкретная версия образа платформы или образа торговой площадки, использованная для создания узла. Это доступное только для чтения поле отличается от «версия» только в том случае, если значение, указанное для «версии» при создании пула, было «последним».

предложение

Тип предложения образа Marketplace виртуальных машин Azure.
Например, UbuntuServer или WindowsServer.

издатель

Издатель образа рынка виртуальных машин Azure.
Например, Canonical или MicrosoftWindowsServer.

sku

Артикул образа рынка виртуальных машин Azure.
Например, 18.04-LTS или 2019-Datacenter.

версия

Версия образа Marketplace виртуальных машин Azure.
Можно указать значение «последняя», чтобы выбрать последнюю версию образа. Если не указано, по умолчанию используется «последний».

virtualMachineImageId

Идентификатор ресурса ARM для изображения совместно используемой галереи изображений. Вычислительные узлы в пуле будут созданы с использованием этого идентификатора изображения.Это имеет форму /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{VersionId} или / subscriptions / {subscriptionId} / resourceGroups. /{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}, чтобы по умолчанию всегда использовалась последняя версия образа.
Это свойство является взаимоисключающим с другими свойствами ImageReference. Образ общей галереи изображений должен иметь реплики в том же регионе и находиться в той же подписке, что и учетная запись пакетной службы Azure.Если версия образа не указана в imageId, будет использоваться последняя версия. Для получения информации о настройках брандмауэра для агента узла пакетных вычислений для связи с пакетной службой см. Https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and -firewall-конфигурация.

Протокол исходящей конечной точки

Протокол конечной точки.

Имя Тип Описание
TCP

Использовать TCP для конечной точки.

udp

Использовать UDP для конечной точки.

InboundNATPool

Входящий пул NAT, который может использоваться для внешней адресации определенных портов на вычислительных узлах в пуле пакетов.

Имя Тип Описание
backendPort

Номер порта на вычислительном узле.
Должен быть уникальным в пуле пакетов. Допустимые значения от 1 до 65535, за исключением 22, 3389, 29876 и 29877, поскольку они зарезервированы. Если предоставлены какие-либо зарезервированные значения, запрос не выполняется с кодом состояния HTTP 400.

frontendPortRangeEnd

Последний номер порта в диапазоне внешних портов, который будет использоваться для предоставления входящего доступа к backendPort на отдельных вычислительных узлах.
Допустимые значения находятся в диапазоне от 1 до 65534, за исключением портов от 50000 до 55000, которые зарезервированы пакетной службой.Все диапазоны в пуле должны быть разными и не могут перекрываться. Каждый диапазон должен содержать не менее 40 портов. Если предоставлены какие-либо зарезервированные или перекрывающиеся значения, запрос не выполняется с кодом состояния HTTP 400.

frontendPortRangeStart

Первый номер порта в диапазоне внешних портов, который будет использоваться для обеспечения входящего доступа к backendPort на отдельных вычислительных узлах.
Допустимые значения находятся в диапазоне от 1 до 65534, за исключением портов от 50000 до 55000, которые зарезервированы.Все диапазоны в пуле должны быть разными и не могут перекрываться. Каждый диапазон должен содержать не менее 40 портов. Если предоставлены какие-либо зарезервированные или перекрывающиеся значения, запрос не выполняется с кодом состояния HTTP 400.

имя

Имя конечной точки.
Имя должно быть уникальным в пределах пула пакетов, может содержать буквы, цифры, символы подчеркивания, точки и дефисы. Имена должны начинаться с буквы или цифры, заканчиваться буквой, цифрой или знаком подчеркивания и не могут превышать 77 символов.Если предоставлены какие-либо недопустимые значения, запрос не выполняется с кодом состояния HTTP 400.

networkSecurityGroupRules

Список правил группы безопасности сети, которые будут применены к конечной точке.
Максимальное количество правил, которое может быть указано для всех конечных точек в пуле пакетов, равно 25. Если правила группы сетевой безопасности не указаны, будет создано правило по умолчанию, разрешающее входящий доступ к указанному backendPort.Если максимальное количество правил группы безопасности сети превышено, запрос не выполняется с кодом состояния HTTP 400.

протокол

Протокол конечной точки.

IPAddressProvisioningType

Тип предоставления общедоступных IP-адресов для пула.

Имя Тип Описание
пакетный

Общедоступный IP-адрес будет создан и управляться пакетной службой.В зависимости от размера пула может быть несколько общедоступных IP-адресов.

nopublicipaddresses

Не будет создан общедоступный IP-адрес.

управляемый пользователем

Общедоступные IP-адреса предоставляются пользователем и будут использоваться для подготовки вычислительных узлов.

JobConstraints

Ограничения выполнения для задания.

Имя Тип Описание
maxTaskRetryCount

Максимальное количество повторных попыток каждой Задачи. Пакетная служба повторяет задачу, если ее код выхода не равен нулю.
Обратите внимание, что это значение конкретно определяет количество повторных попыток. Пакетная служба будет пробовать каждую задачу один раз, а затем может повторить попытку до этого предела. Например, если максимальное количество попыток равно 3, пакетная служба пытается выполнить задачу до 4 раз (одна начальная попытка и 3 попытки).Если максимальное количество повторных попыток равно 0, пакетная служба не повторяет выполнение задач. Если максимальное количество попыток равно -1, пакетная служба повторяет задачи без ограничения. Значение по умолчанию - 0 (повторных попыток нет).

maxWallClockTime

Максимальное истекшее время, в течение которого может выполняться задание, отсчитываемое с момента его создания.
Если задание не завершается в течение установленного времени, пакетная служба завершает его и все задачи, которые все еще выполняются.В этом случае причиной прерывания будет MaxWallClockTimeExpiry. Если это свойство не указано, ограничения по времени на выполнение задания отсутствуют.

JobUpdateParameter

Набор изменений, которые необходимо внести в задание.

Имя Тип Описание
ограничения

Ограничения выполнения для задания.
Если опущено, ограничения снимаются.

метаданные

Список пар имя-значение, связанных с заданием как метаданные.
Если опущено, принимает значение по умолчанию - пустой список; по сути, все существующие метаданные удаляются.

onAllTasksComplete

Действие, которое должна предпринять пакетная служба, когда все задачи в задании находятся в завершенном состоянии.
Если опущено, поведение завершения устанавливается на отсутствие действий.Если текущее значение terminatejob, это ошибка, потому что поведение завершения Job не может быть изменено с terminatejob на noaction. Вы не можете изменить значение с terminatejob на noaction, то есть после того, как вы включили автоматическое завершение Job, вы не сможете снова отключить его. Если вы попытаетесь сделать это, запрос не будет выполнен, а пакетная служба вернет код состояния 400 (неверный запрос) и ответ с ошибкой «недопустимое значение свойства». Если вы не укажете этот элемент в запросе PUT, это эквивалентно передаче noaction.Это ошибка, если текущее значение - terminatejob.

poolInfo

Пул, в котором пакетная служба запускает задачи задания.
Вы можете изменить пул для задания, только если задание отключено. Вызов задания обновления завершится ошибкой, если вы включите элемент poolInfo и задание не отключено. Если вы укажете autoPoolSpecification в poolInfo, можно будет обновить только свойство keepAlive autoPoolSpecification, и то только в том случае, если autoPoolSpecification имеет poolLifetimeOption of Job (другие свойства задания могут быть обновлены как обычно).

приоритет

Приоритет задания.
Значения приоритета могут находиться в диапазоне от -1000 до 1000, где -1000 - самый низкий приоритет, а 1000 - самый высокий. Если опущено, устанавливается значение по умолчанию 0.

LinuxUserConfiguration

Свойства, используемые для создания учетной записи пользователя на вычислительном узле Linux.

Имя Тип Описание
гид

Идентификатор группы для учетной записи пользователя.
Свойства uid и gid должны указываться вместе или не указываться вовсе. Если не указано, gid выбирает базовая операционная система.

sshPrivateKey

Закрытый ключ SSH для учетной записи пользователя.
Закрытый ключ не должен быть защищен паролем. Закрытый ключ используется для автоматической настройки аутентификации на основе асимметричного ключа для SSH между вычислительными узлами в пуле Linux, когда свойство пула enableInterNodeCommunication имеет значение true (оно игнорируется, если enableInterNodeCommunication имеет значение false).Он делает это, помещая пару ключей в каталог пользователя .ssh. Если не указано иное, SSH без пароля не настраивается между вычислительными узлами (никакая модификация пользовательского каталога .ssh не выполняется).

uid

Идентификатор пользователя учетной записи пользователя.
Свойства uid и gid должны указываться вместе или не указываться вовсе. Если не указано иное, базовая операционная система выбирает uid.

LoginMode

Режим входа для пользователя

Имя Тип Описание
партия

Режим входа в систему LOGON32_LOGON_BATCH Win32.Пакетный режим входа рекомендуется для длительных параллельных процессов.

интерактивный

Режим входа в систему LOGON32_LOGON_INTERACTIVE Win32. UAC включен в пулах конфигурации Windows VirtualMachine. Если этот параметр используется с повышенным удостоверением пользователя в пуле Windows VirtualMachineConfiguration Pool, сеанс пользователя не будет повышен, если приложение, выполняемое из командной строки задачи, не настроено так, чтобы всегда требовать административные привилегии или всегда требовать максимальные привилегии.

Элемент метаданных

Пара имя-значение, связанная с ресурсом пакетной службы.

Имя Тип Описание
имя

Имя элемента метаданных.

ценить

Значение элемента метаданных.

MountConfiguration

Файловая система для монтирования на каждом узле.

Имя Тип Описание
azureBlobFileSystemConfiguration

Контейнер хранения Azure для подключения с помощью BLOB-объекта FUSE на каждом узле.
Это свойство является взаимоисключающим со всеми другими свойствами.

azureFileShareConfiguration

Файловый ресурс Azure для подключения к каждому узлу.
Это свойство является взаимоисключающим со всеми другими свойствами.

cifsMountConfiguration

Файловая система CIFS / SMB для монтирования на каждом узле.
Это свойство является взаимоисключающим со всеми другими свойствами.

nfsMountConfiguration

Файловая система NFS для монтирования на каждом узле.
Это свойство является взаимоисключающим со всеми другими свойствами.

Конфигурация сети

Конфигурация сети для пула.

Имя Тип Описание
dynamicVNetAssignmentScope

Объем динамического назначения vnet.

endpointConfiguration

Конфигурация конечных точек на вычислительных узлах в пакетном пуле.
Конфигурация конечной точки пула поддерживается только в пулах со свойством virtualMachineConfiguration.

publicIPAddressConfiguration

Конфигурация общедоступного IP-адреса для вычислительных узлов в пакетном пуле. Свойство конфигурации общедоступного IP-адреса
поддерживается только в пулах со свойством virtualMachineConfiguration.

subnetId

Идентификатор ресурса ARM подсети виртуальной сети, к которой будут присоединяться вычислительные узлы пула.Это имеет вид / подписки / {подписка} / группы ресурсов / {группа} / поставщики / {поставщик} / виртуальные сети / {сеть} / подсети / {подсеть}.
Виртуальная сеть должна находиться в том же регионе и в той же подписке, что и учетная запись пакетной службы Azure. В указанной подсети должно быть достаточно свободных IP-адресов для размещения количества вычислительных узлов в пуле. Если в подсети недостаточно свободных IP-адресов, пул частично выделит узлы, и произойдет ошибка изменения размера. Субъект службы MicrosoftAzureBatch должен иметь роль управления доступом на основе ролей (RBAC) Classic Virtual Machine Contributor для указанной виртуальной сети.Указанная подсеть должна разрешать обмен данными с пакетной службой Azure, чтобы иметь возможность планировать задачи на узлах. Это можно проверить, проверив, есть ли в указанной виртуальной сети какие-либо связанные группы безопасности сети (NSG). Если связь с узлами в указанной подсети запрещена группой безопасности сети, то пакетная служба установит состояние вычислительных узлов как непригодное для использования. Для пулов, созданных с помощью virtualMachineConfiguration, поддерживаются только виртуальные сети ARM («Microsoft.Network/virtualNetworks»), но для пулов, созданных с помощью cloudServiceConfiguration, поддерживаются как виртуальные сети ARM, так и классические виртуальные сети.Если указанная виртуальная сеть имеет какие-либо связанные группы безопасности сети (NSG), то для входящей связи необходимо включить несколько зарезервированных системных портов. Для пулов, созданных с помощью конфигурации виртуальной машины, включите порты 29876 и 29877, а также порт 22 для Linux и порт 3389 для Windows. Для пулов, созданных с помощью конфигурации облачной службы, включите порты 10100, 20100 и 30100. Также разрешите исходящие подключения к хранилищу Azure на порте 443. Дополнительные сведения см .: https://docs.microsoft.com/en-us/azure/ batch / batch-api-basics # виртуальная сеть-vnet-и-конфигурация брандмауэра

NetworkSecurityGroupRule

Правило группы безопасности сети, применяемое к входящей конечной точке.

Имя Тип Описание
доступ

Действие, которое необходимо выполнить для указанного IP-адреса, диапазона подсети или тега.

приоритет

Приоритет этого правила.
Приоритеты в пуле должны быть уникальными и оцениваться в порядке приоритета. Чем меньше число, тем выше приоритет.Например, правила могут быть указаны с порядковыми номерами 150, 250 и 350. Правило с порядковым номером 150 имеет приоритет над правилом с порядковым номером 250. Допустимые приоритеты - от 150 до 4096. Если какие-либо зарезервированные или повторяющиеся при условии, что запрос завершился ошибкой с кодом состояния HTTP 400.

sourceAddressPrefix

Префикс или тег адреса источника для соответствия правилу.
Допустимые значения: один IP-адрес (т.е.е. 10.10.10.10), IP-подсеть (например, 192.168.1.0/24), тег по умолчанию или * (для всех адресов). Если предоставлены какие-либо другие значения, запрос не выполняется с кодом состояния HTTP 400.

sourcePortRanges

Диапазон портов источника, соответствующих правилу.
Допустимые значения: «» (для всех портов 0-65535), конкретный порт (например, 22) или диапазон портов (например, 100-200). Порты должны находиться в диапазоне от 0 до 65535. Каждая запись в этой коллекции не должна перекрывать любую другую запись (диапазон или отдельный порт).Если предоставлены какие-либо другие значения, запрос завершится ошибкой с кодом состояния HTTP 400. Значение по умолчанию - «».

NetworkSecurityGroupRuleAccess

Действие, которое необходимо выполнить для указанного IP-адреса, диапазона подсети или тега.

Имя Тип Описание
разрешать

Разрешить доступ.

Отрицать

Запретить доступ.

NFSMountConfiguration

Информация, используемая для подключения к файловой системе NFS.

Имя Тип Описание
mountOptions

Дополнительные параметры командной строки для передачи команде монтирования.
Это параметры «чистого использования» в Windows и параметры «монтирования» в Linux.

relativeMountPath

Относительный путь на вычислительном узле, где будет смонтирована файловая система.
Все файловые системы смонтированы относительно каталога пакетного монтирования, доступного через переменную среды AZ_BATCH_NODE_MOUNTS_DIR.

источник

URI монтируемой файловой системы.

Конфигурация размещения узла

Конфигурация размещения узла для пула.

Имя Тип Описание
политика

Тип политики размещения узлов в пакетных пулах.
Политика распределения, используемая пакетной службой для подготовки узлов.Если не указано, пакетная обработка будет использовать региональную политику.

NodePlacementPolicyType

Политика размещения для распределения узлов в пуле.

Имя Тип Описание
региональный

Все узлы в пуле будут размещены в одном регионе.

зональный

Узлы в пуле будут распределены по разным зонам доступности с оптимальной балансировкой.

OnAllTasksComplete

Действие, которое должна предпринять пакетная служба, когда все задачи в задании находятся в завершенном состоянии.

Имя Тип Описание
бездействие

Ничего не делать. Задание остается активным, пока не будет прекращено или отключено каким-либо другим способом.

прекратить работу

Прекратить работу.Для terminateReason задания установлено значение «AllTasksComplete».

OSDisk

Параметры для диска операционной системы вычислительного узла (ВМ).

Имя Тип Описание
ephemeralOSDiskSettings

Задает временные параметры диска для диска операционной системы, используемого вычислительным узлом (ВМ).

PoolEndpointConfiguration

Конфигурация конечной точки для пула.

Имя Тип Описание
inboundNATPools

Список входящих пулов NAT, которые могут использоваться для внешней адресации определенных портов на отдельном вычислительном узле.
Максимальное количество входящих NAT-пулов на пакетный пул - 5. Если максимальное количество входящих NAT-пулов превышено, запрос завершается ошибкой с кодом состояния HTTP 400. Это не может быть указано, если IPAddressProvisioningType имеет значение NoPublicIPAddresses.

Информация о пуле

Указывает, как задание должно быть назначено пулу.

Имя Тип Описание
autoPoolSpecification

Характеристики временного «автомобильного пула». Пакетная служба создаст этот автоматический пул при отправке задания.
Если автоматическое создание пула не удается, пакетная служба переводит задание в завершенное состояние, а ошибка создания пула устанавливается в свойстве ошибки планирования задания.Пакетная служба управляет временем жизни (как созданием, так и, если не указано keepAlive, удалением) автоматического пула. Любые действия пользователя, влияющие на время жизни автоматического пула при активном задании, приведут к неожиданному поведению. Вы должны указать либо идентификатор пула, либо автоматическую спецификацию пула, но не то и другое вместе.

poolId

Идентификатор существующего пула. Все задачи задания будут выполняться в указанном пуле.
Вы должны убедиться, что пул, на который ссылается это свойство, существует.Если пул не существует в то время, когда пакетная служба пытается запланировать задание, никакие задачи для этого задания не будут выполняться, пока вы не создадите пул с этим идентификатором. Обратите внимание, что пакетная служба не отклоняет запрос задания; он просто не будет запускать задачи, пока не будет создан пул. Вы должны указать либо идентификатор пула, либо автоматическую спецификацию пула, но не то и другое вместе.

PoolLifetimeOption

Минимальное время жизни созданных автоматических пулов и то, как несколько заданий по расписанию назначаются пулам.

Имя Тип Описание
работа

Пул существует в течение всего срока действия задания, которому он посвящен. Пакетная служба создает пул при создании задания. Если параметр «задание» применяется к расписанию заданий, пакетная служба создает новый автоматический пул для каждого задания, созданного в расписании.

график работы

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

Бассейн Спецификация

Спецификация для создания нового пула.

Имя Тип Описание
applicationLicenses

Список лицензий приложений, которые пакетная служба сделает доступными на каждом вычислительном узле в пуле.
Список лицензий приложений должен быть подмножеством доступных лицензий приложений пакетной службы. Если запрашивается лицензия, которая не поддерживается, создание пула завершится ошибкой. Разрешенные лицензии, доступные в пуле: maya, vray, 3dsmax, arnold. За каждую добавленную в пул лицензию на приложение взимается дополнительная плата.

applicationPackageReferences

Список пакетов, которые должны быть установлены на каждом вычислительном узле в пуле.
Изменения в ссылках на пакеты влияют на все новые узлы, присоединяющиеся к пулу, но не влияют на вычислительные узлы, которые уже находятся в пуле, до тех пор, пока они не будут перезагружены или повторно отображены. В любом пуле может быть не более 10 ссылок на пакеты.

autoScaleEvaluationInterval

Интервал времени, через который автоматически настраивается размер пула в соответствии с формулой автомасштабирования.
Значение по умолчанию - 15 минут. Минимальное и максимальное значение - 5 минут и 168 часов соответственно.Если указать значение меньше 5 минут или больше 168 часов, пакетная служба отклоняет запрос с ошибкой недопустимого значения свойства; если вы вызываете REST API напрямую, код состояния HTTP - 400 (неверный запрос).

autoScaleFormula

Формула для желаемого количества вычислительных узлов в пуле.
Это свойство нельзя указывать, если для параметра enableAutoScale задано значение false. Это необходимо, если для параметра enableAutoScale установлено значение true.Формула проверяется на правильность перед созданием пула. Если формула недействительна, пакетная служба отклоняет запрос с подробной информацией об ошибке.

сертификатСсылки

Список сертификатов, которые должны быть установлены на каждом вычислительном узле в пуле.
Для узлов Windows пакетная служба устанавливает сертификаты в указанное хранилище сертификатов и в указанное место. Для вычислительных узлов Linux сертификаты хранятся в каталоге внутри рабочего каталога Задачи, а переменная среды AZ_BATCH_CERTIFICATES_DIR предоставляется Задаче для запроса этого местоположения.Для сертификатов с видимостью 'remoteUser' каталог 'certs' создается в домашнем каталоге пользователя (например, / home / {user-name} / certs), и сертификаты помещаются в этот каталог.

cloudServiceConfiguration

Конфигурация облачной службы для пула.
Это свойство необходимо указать, если пул необходимо создать с помощью виртуальных машин Azure PaaS. Это свойство и virtualMachineConfiguration являются взаимоисключающими, и необходимо указать одно из свойств.Если ни один из них не указан, пакетная служба возвращает ошибку; если вы вызываете REST API напрямую, код состояния HTTP - 400 (неверный запрос). Это свойство нельзя указать, если учетная запись пакетной службы была создана со свойством poolAllocationMode, установленным на «UserSubscription».

отображаемое имя

Отображаемое имя пула.
Отображаемое имя не обязательно должно быть уникальным и может содержать любые символы Unicode до максимальной длины 1024.

enableAutoScale

Должен ли размер пула автоматически изменяться с течением времени.
Если false, необходимо указать хотя бы один из targetDedicatedNodes и targetLowPriorityNodes. Если true, требуется элемент autoScaleFormula. Размер пула автоматически изменяется в соответствии с формулой. Значение по умолчанию неверно.

enableInterNodeCommunication

Разрешает ли пул прямую связь между вычислительными узлами.
Включение связи между узлами ограничивает максимальный размер пула из-за ограничений развертывания на вычислительных узлах пула. Это может привести к тому, что пул не достигнет желаемого размера. Значение по умолчанию неверно.

метаданные

Список пар имя-значение, связанных с пулом в качестве метаданных.
Пакетная служба не придает никакого значения метаданным; он предназначен исключительно для использования кода пользователя.

mountConfiguration

Список файловых систем для монтирования на каждом узле пула.
Это поддерживает файлы Azure, NFS, CIFS / SMB и Blobfuse.

конфигурация сети

Конфигурация сети для пула.
Сетевая конфигурация пула.

resizeTimeout

Тайм-аут для выделения вычислительных узлов пулу.
Этот тайм-аут применяется только к ручному масштабированию; он не действует, если для параметра enableAutoScale установлено значение true.Значение по умолчанию - 15 минут. Минимальное значение - 5 минут. Если вы укажете значение меньше 5 минут, пакетная служба отклонит запрос с ошибкой; если вы вызываете REST API напрямую, код состояния HTTP - 400 (неверный запрос).

startTask

Задача, запускаемая на каждом вычислительном узле при присоединении к пулу. Задача запускается, когда вычислительный узел добавляется в пул или когда вычислительный узел перезапускается.
Пакетная обработка будет повторять задачи, когда на узле запущена операция восстановления.Примеры операций восстановления включают (но не ограничиваются ими), когда неисправный узел перезагружается или вычислительный узел исчезает из-за сбоя узла. Повторные попытки из-за операций восстановления не зависят от maxTaskRetryCount и не учитываются. Даже если maxTaskRetryCount равен 0, может произойти внутренняя повторная попытка из-за операции восстановления. Из-за этого все Задачи должны быть идемпотентными. Это означает, что Задачи должны допускать прерывание и перезапуск, не вызывая повреждения или дублирования данных.Для длительных задач лучше всего использовать какую-либо форму контрольных точек. В некоторых случаях StartTask может быть повторно запущен, даже если вычислительный узел не был перезагружен. Следует проявлять особую осторожность, чтобы избежать StartTasks, которые создают отрывной процесс или устанавливают / запускают службы из рабочего каталога StartTask, так как это заблокирует возможность Batch повторно запустить StartTask.

targetDedicatedNodes

Требуемое количество выделенных вычислительных узлов в пуле.
Это свойство нельзя указывать, если для параметра enableAutoScale установлено значение true. Если для параметра enableAutoScale установлено значение false, необходимо установить либо targetDedicatedNodes, targetLowPriorityNodes, либо и то, и другое.

targetLowPriorityNodes

Требуемое количество низкоприоритетных вычислительных узлов в пуле.
Это свойство нельзя указывать, если для параметра enableAutoScale установлено значение true. Если для параметра enableAutoScale установлено значение false, необходимо установить либо targetDedicatedNodes, targetLowPriorityNodes, либо и то, и другое.

taskSchedulingPolicy

Как задачи распределяются по вычислительным узлам в пуле.
Если не указано, по умолчанию используется спред.

taskSlotsPerNode

Количество слотов задач, которые можно использовать для одновременного выполнения задач на одном вычислительном узле в пуле.
Значение по умолчанию - 1. Максимальное значение - это меньшее из 4-кратного количества ядер vmSize пула или 256.

учетные записи пользователей

Список учетных записей пользователей, которые необходимо создать на каждом вычислительном узле в пуле.

virtualMachineConfiguration

Конфигурация виртуальной машины для пула.
Это свойство необходимо указать, если пул необходимо создать с помощью виртуальных машин Azure IaaS. Это свойство и cloudServiceConfiguration являются взаимоисключающими, и необходимо указать одно из свойств.Если ни один из них не указан, пакетная служба возвращает ошибку; если вы вызываете REST API напрямую, код состояния HTTP - 400 (неверный запрос).

vmSize

Размер виртуальных машин в пуле. Все виртуальные машины в пуле имеют одинаковый размер.
Сведения о доступных размерах виртуальных машин в пулах см. В разделе Выбор размера виртуальной машины для вычислительных узлов в пуле пакетной службы Azure (https://docs.microsoft.com / azure / batch / batch-pool-vm-sizes).

PublicIPAddressConfiguration

Конфигурация общедоступного IP-адреса сетевой конфигурации пула.

Имя Тип Описание
ipAddressIds

Список общедоступных IP-адресов, которые пакетная служба будет использовать при инициализации вычислительных узлов.
Указанное здесь количество IP-адресов ограничивает максимальный размер пула - для каждого общедоступного IP-адреса можно выделить 100 выделенных узлов или 100 узлов с низким приоритетом.Например, для пула, в котором требуется 250 выделенных виртуальных машин, потребуется указать как минимум 3 общедоступных IP-адреса. Каждый элемент этой коллекции имеет форму: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}.

обеспечение

Тип предоставления общедоступных IP-адресов для пула.
Значение по умолчанию - BatchManaged.

ResourceFile

Один или несколько файлов для загрузки на вычислительный узел.

Имя Тип Описание
autoStorageContainerName

Имя контейнера хранения в Учетной записи автоматического хранения.
Свойства autoStorageContainerName, storageContainerUrl и httpUrl являются взаимоисключающими, и одно из них должно быть указано.

blobPrefix

Префикс большого двоичного объекта, используемый при загрузке больших двоичных объектов из контейнера хранилища Azure.Будут загружены только большие двоичные объекты, имена которых начинаются с указанного префикса.
Свойство действительно только при использовании autoStorageContainerName или storageContainerUrl. Этот префикс может быть частичным именем файла или подкаталогом. Если префикс не указан, будут загружены все файлы в контейнере.

fileMode

Атрибут режима разрешения файла в восьмеричном формате.
Это свойство применяется только к файлам, загружаемым на вычислительные узлы Linux.Он будет проигнорирован, если он указан для файла ресурсов, который будет загружен на вычислительный узел Windows. Если это свойство не указано для вычислительного узла Linux, то к файлу применяется значение по умолчанию 0770.

Путь файла

Расположение на вычислительном узле, куда загружаются файлы, относительно рабочего каталога Задачи.
Если указано свойство httpUrl, filePath является обязательным и описывает путь, по которому файл будет загружен, включая имя файла.В противном случае, если указано свойство autoStorageContainerName или storageContainerUrl, filePath является необязательным и является каталогом для загрузки файлов. В случае, когда filePath используется в качестве каталога, любая структура каталогов, уже связанная с входными данными, будет сохранена полностью и добавлена ​​к указанному каталогу filePath. Указанный относительный путь не может выходить за пределы рабочего каталога Задачи (например, с помощью '..').

httpUrl

URL-адрес файла для загрузки.
Свойства autoStorageContainerName, storageContainerUrl и httpUrl являются взаимоисключающими, и одно из них должно быть указано. Если URL-адрес указывает на хранилище BLOB-объектов Azure, он должен быть доступен для чтения с вычислительных узлов. Есть три способа получить такой URL-адрес для большого двоичного объекта в хранилище Azure: включить подпись общего доступа (SAS), предоставляющую разрешения на чтение большого двоичного объекта, использовать управляемое удостоверение с разрешением на чтение или установить для ACL для большого двоичного объекта или его контейнера значение разрешить публичный доступ.

identityReference

Ссылка на назначенное пользователем удостоверение для использования для доступа к хранилищу BLOB-объектов Azure, указанное с помощью storageContainerUrl или httpUrl
Ссылка на назначенное пользователем удостоверение, связанное с пулом пакетной службы, которое будет использовать вычислительный узел.

storageContainerUrl

URL-адрес контейнера больших двоичных объектов в хранилище больших двоичных объектов Azure.
Свойства autoStorageContainerName, storageContainerUrl и httpUrl являются взаимоисключающими, и одно из них должно быть указано. Этот URL-адрес должен быть доступен для чтения и списка с вычислительных узлов. Есть три способа получить такой URL-адрес для контейнера в хранилище Azure: включить подпись общего доступа (SAS), предоставляющую разрешения на чтение и список для контейнера, использовать управляемое удостоверение с разрешениями на чтение и список или установить ACL для контейнера. чтобы разрешить публичный доступ.

StartTask

Задача, которая запускается, когда узел присоединяется к пулу в пакетной службе Azure или когда вычислительный узел перезагружается или повторно создается.

Имя Тип Описание
командная строка

Командная строка StartTask.
Командная строка не запускается под оболочкой и поэтому не может использовать преимущества таких функций оболочки, как расширение переменных среды.Если вы хотите воспользоваться такими функциями, вам следует вызвать оболочку в командной строке, например, используя «cmd / c MyCommand» в Windows или «/ bin / sh -c MyCommand» в Linux. Если командная строка ссылается на пути к файлам, она должна использовать относительный путь (относительно рабочего каталога задачи) или использовать переменную среды, предоставленную пакетной службой (https://docs.microsoft.com/en-us/azure/batch/ переменные-среды-узла-пакетных вычислений).

containerSettings

Параметры контейнера, под которым запускается StartTask.
Если это указано, все каталоги рекурсивно ниже AZ_BATCH_NODE_ROOT_DIR (корень каталогов пакетной службы Azure на узле) сопоставляются с контейнером, все переменные среды задачи сопоставляются с контейнером, а командная строка задачи выполняется в контейнере. Файлы, созданные в контейнере вне AZ_BATCH_NODE_ROOT_DIR, могут не отражаться на диске хоста, что означает, что API пакетных файлов не смогут получить доступ к этим файлам.

environmentSettings

Список настроек переменных среды для StartTask.

maxTaskRetryCount

Максимальное количество повторных попыток Задачи.
Пакетная служба повторяет задачу, если ее код выхода не равен нулю. Обратите внимание, что это значение конкретно контролирует количество повторных попыток. Пакетная служба попытается выполнить задачу один раз, а затем может повторить попытку до этого предела. Например, если максимальное количество попыток равно 3, пакетная служба пытается выполнить задачу до 4 раз (одна начальная попытка и 3 попытки). Если максимальное количество попыток равно 0, пакетная служба не повторяет выполнение задачи.Если максимальное количество попыток равно -1, пакетная служба повторяет задачу без ограничений.

resourceFiles

Список файлов, которые пакетная служба загрузит на вычислительный узел перед запуском командной строки. Список файлов ресурсов имеет максимальный размер. Когда максимальный размер превышен, запрос не будет выполнен, и код ошибки ответа будет RequestEntityTooLarge. В этом случае необходимо уменьшить размер коллекции ResourceFiles.Этого можно добиться с помощью файлов .zip, пакетов приложений или контейнеров Docker.
Файлы, перечисленные в этом элементе, находятся в рабочем каталоге Задачи.

userIdentity

Идентификатор пользователя, под которым запускается StartTask.
Если опущено, Задача запускается как пользователь без прав администратора, уникальный для Задачи.

waitForSuccess

Должна ли пакетная служба ждать успешного завершения StartTask (то есть выхода с кодом выхода 0) перед планированием любых задач на вычислительном узле.
Если истина и StartTask не выполняется на узле, пакетная служба повторяет StartTask до максимального количества повторов (maxTaskRetryCount). Если задача по-прежнему не завершилась успешно после всех повторных попыток, то пакетная служба помечает узел как непригодный для использования и не будет планировать для него Задачи. Это состояние можно определить с помощью сведений о состоянии вычислительного узла и сбоях. Если false, пакетная служба не будет ждать завершения StartTask. В этом случае другие Задачи могут начать выполнение на вычислительном узле, в то время как StartTask все еще выполняется; и даже если StartTask завершится неудачно, новые задачи будут по-прежнему планироваться на вычислительном узле.По умолчанию это правда.

StorageAccountType

Тип учетной записи хранения для использования при создании дисков с данными.

Имя Тип Описание
premium_lrs

Диск с данными должен использовать локально избыточное хранилище премиум-класса.

standard_lrs

Диск с данными должен использовать стандартное локально избыточное хранилище.

TaskContainerSettings

Параметры контейнера для Задачи.

Имя Тип Описание
containerRunOptions

Дополнительные параметры для команды создания контейнера.
Эти дополнительные параметры предоставляются в качестве аргументов команды «docker create» в дополнение к тем, которые контролируются пакетной службой.

imageName

Изображение, используемое для создания контейнера, в котором будет выполняться задача.
Это полная ссылка на изображение, как это было бы указано для "docker pull". Если тег не указан как часть имени изображения, по умолчанию используется тег ": latest".

реестр

Частный реестр, содержащий образ контейнера.
Этот параметр можно не указывать, если он уже был задан при создании пула.

рабочий каталог

Расположение рабочего каталога задачи контейнера.
По умолчанию - taskWorkingDirectory.

Политика планирования задач

Определяет, как задачи должны распределяться по вычислительным узлам.

Имя Тип Описание
nodeFillType

Как задачи распределяются по вычислительным узлам в пуле.
Если не указано, по умолчанию используется спред.

Учетная запись пользователя

Свойства, используемые для создания пользователя, используемого для выполнения задач на узле пакетных вычислений Azure.

Имя Тип Описание
высотаLevel

Уровень повышения учетной записи пользователя.
Значение по умолчанию - nonAdmin.

linuxUserConfiguration

Конфигурация пользователя для учетной записи пользователя Linux.
Это свойство игнорируется, если указано в пуле Windows. Если не указано, пользователь создается с параметрами по умолчанию.

имя

Имя учетной записи пользователя.

пароль

Пароль учетной записи пользователя.

windowsUserConfiguration

Конфигурация пользователя для учетной записи пользователя Windows.
Это свойство можно указать, только если пользователь находится в пуле Windows.Если не указано и в пуле Windows, пользователь создается с параметрами по умолчанию.

Идентификатор пользователя

Определение идентификатора пользователя, под которым выполняется Задача.

Имя Тип Описание
autoUser

Автоматический пользователь, от имени которого запускается Задача.
Свойства userName и autoUser взаимоисключающие; вы должны указать одно, но не оба.

имя пользователя

Имя идентификатора пользователя, под которым выполняется Задача.
Свойства userName и autoUser взаимоисключающие; вы должны указать одно, но не оба.

VirtualMachineConfiguration

Конфигурация для вычислительных узлов в пуле на основе инфраструктуры виртуальных машин Azure.

Имя Тип Описание
containerConfiguration

Конфигурация контейнера для пула.
Если указано, настройка выполняется на каждом вычислительном узле в пуле, чтобы задачи могли выполняться в контейнерах. Все обычные задачи и задачи диспетчера заданий, выполняемые в этом пуле, должны указывать свойство containerSettings, а все другие задачи могут указывать его.

dataDisks

Конфигурация дисков данных, подключенных к вычислительным узлам в пуле.
Это свойство необходимо указать, если к вычислительным узлам в пуле должны быть подключены пустые диски с данными.Это не может быть обновлено. Каждый вычислительный узел получает свой собственный диск (диск не является общим файловым ресурсом). Существующие диски подключить нельзя, каждый подключенный диск пуст. Когда вычислительный узел удаляется из пула, диск и все связанные с ним данные также удаляются. После присоединения диск не форматируется, его необходимо отформатировать перед использованием - для получения дополнительной информации см. Https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize- a-new-data-disk-in-linux и https: // docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine.

diskEncryptionConfiguration

Конфигурация шифрования диска для пула.
Если указано, шифрование выполняется на каждом узле в пуле во время подготовки узла.

расширения

Расширение виртуальной машины для пула.
Если указано, расширения, упомянутые в этой конфигурации, будут установлены на каждом узле.

imageReference

Ссылка на образ из Marketplace виртуальных машин Azure или настраиваемый образ виртуальной машины для использования.

тип лицензии

Тип локальной лицензии, которая будет использоваться при развертывании операционной системы.
Это применимо только к изображениям, содержащим операционную систему Windows, и должно использоваться только в том случае, если у вас есть действующие локальные лицензии для вычислительных узлов, которые будут развернуты.Если он не указан, скидка на локальное лицензирование не применяется. Значения:

Windows_Server - локальная лицензия для Windows Server. Windows_Client - локальная лицензия предназначена для клиента Windows.

nodeAgentSKUId

Артикул агента пакетного вычислительного узла, который будет подготовлен на вычислительных узлах в пуле.
Агент пакетного вычислительного узла - это программа, которая запускается на каждом вычислительном узле в пуле и обеспечивает командно-управляющий интерфейс между вычислительным узлом и пакетной службой.Существуют разные реализации агента вычислительного узла, известные как SKU, для разных операционных систем. Вы должны указать SKU агента вычислительного узла, который соответствует выбранной ссылке на изображение. Чтобы получить список поддерживаемых номеров SKU агента вычислительного узла вместе со списком проверенных ссылок на образы, см. Операцию «Список поддерживаемых номеров SKU агента вычислительного узла».

nodePlacementConfiguration

Конфигурация размещения узла для пула.
Эта конфигурация определяет правила физического распределения узлов в пуле.

osDisk

Параметры для диска операционной системы виртуальной машины.

windowsConfiguration

Настройки операционной системы Windows на виртуальной машине.
Это свойство нельзя указывать, если свойство imageReference указывает образ ОС Linux.

VMExtension

Конфигурация расширений виртуальной машины.

Имя Тип Описание
autoUpgradeMinorVersion

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

имя

Имя расширения виртуальной машины.

protectedSettings

Расширение может содержать или protectedSettings, или protectedSettingsFromKeyVault, или вообще не содержать защищенных настроек.

ProvisionAfterExtensions

Коллекция имён расширений.
Коллекция имен расширений, после которых это расширение необходимо подготовить.

издатель

Имя издателя обработчика расширений.

настройки

Общедоступные настройки расширения в формате JSON.

тип

Тип расширения.

typeHandlerVersion

Версия обработчика скрипта.

Конфигурация Windows

Параметры операционной системы Windows, применяемые к виртуальной машине.

Имя Тип Описание
enableAutomaticUpdates

Включено ли автоматическое обновление на виртуальной машине.
Если опущено, значение по умолчанию - истина.

WindowsUserConfiguration

Свойства, используемые для создания учетной записи пользователя на вычислительном узле Windows.

Имя Тип Описание
loginMode

Режим входа в систему для пользователя
Значение по умолчанию для пулов VirtualMachineConfiguration - «пакетный», а для пулов CloudServiceConfiguration - «интерактивное».

заданий в Azure Pipelines и TFS - Azure Pipelines

  • 24 минуты на чтение

В этой статье

Azure Pipelines | Azure DevOps Server 2020 | Сервер Azure DevOps 2019 | TFS 2018 | ТФС 2017

Примечание

В Microsoft Team Foundation Server (TFS) 2018 и предыдущих версиях конвейеры сборки и выпуска называются определениями , прогонов называются сборки , сервисных соединений называются сервисными конечными точками , этапы называются средами , и заданий называются фазами .

Вы можете разбить конвейер на рабочие места. У каждого конвейера есть как минимум одно задание. Задание - это последовательность шагов, которые выполняются последовательно как единое целое. Другими словами, задание - это наименьшая единица работы, которую можно запланировать для выполнения.

Вы можете организовать конвейер сборки или выпуска в рабочие места. У каждого конвейера есть как минимум одно задание. Задание - это последовательность шагов, которые выполняются последовательно как единое целое. Другими словами, задание - это наименьшая единица работы, которую можно запланировать для выполнения.

Примечание

Необходимо установить TFS 2018.2 для использования рабочих мест в процессах сборки. В TFS 2018 RTM вы можете использовать задания в процессах развертывания релизов.

Вы можете организовать конвейер выпуска в виде заданий. У каждого конвейера выпуска есть как минимум одно задание. В этой версии TFS задания не поддерживаются в конвейере сборки.

Примечание

Необходимо установить Обновление 2, чтобы использовать задания в конвейере выпуска в TFS 2017. Задания в конвейерах сборки доступны в Azure Pipelines, TFS 2018.2 и более новых версиях.

Определить отдельное задание

В простейшем случае конвейер выполняет одну задачу.В этом случае вам не нужно явно использовать ключевое слово job , если вы не используете шаблон. Вы можете напрямую указать шаги в вашем YAML-файле.

В этом YAML-файле есть задание, которое выполняется агентом, размещенным в Microsoft, и выводит Hello world .

  бассейн:
  vmImage: 'убунту-16.04'
шаги:
- bash: echo «Привет, мир»
  

Вы можете указать дополнительные свойства для этого задания. В этом случае вы можете использовать ключевое слово job .

  вакансий:
- работа: myJob
  timeoutInMinutes: 10
  бассейн:
    vmImage: 'убунту-16.04'
  шаги:
  - bash: echo «Привет, мир»
  

В вашем конвейере может быть несколько заданий. В этом случае используйте ключевое слово jobs .

  вакансий:
- работа: A
  шаги:
  - bash: эхо «А»

- работа: B
  шаги:
  - bash: эхо "B"
  

Ваш конвейер может состоять из нескольких этапов, на каждом из которых может быть несколько заданий. В этом случае используйте ключевое слово stage .

  ступеней:
- этап: А
  вакансии:
  - работа: А1
  - работа: A2

- этап: B
  вакансии:
  - работа: B1
  - работа: B2
  

Полный синтаксис для указания задания:

  - задание: строка # название задания, A-Z, a-z, 0-9 и подчеркивание
  displayName: string # понятное имя для отображения в пользовательском интерфейсе
  зависит от: строка | [ нить ]
  условие: строка
  стратегия:
    parallel: # параллельная стратегия
    матрица: # матричная стратегия
    maxParallel: number # максимальное количество одновременных участков матрицы для запуска
    # примечание: `parallel` и` matrix` исключают друг друга
    # вы можете указать одно или другое; включая оба - ошибка
    # `maxParallel` действительно только с` matrix`
  continueOnError: boolean # 'true', если будущие задания должны выполняться, даже если это задание завершилось ошибкой; по умолчанию false
  pool: pool # пул агентов
  рабочая среда:
    чистый: выходы | ресурсы | all # что убрать перед запуском задания
  container: containerReference # контейнер для запуска этого задания внутри
  timeoutInMinutes: number # сколько времени нужно выполнять до автоматической отмены
  cancelTimeoutInMinutes: number # сколько времени дать 'запускать всегда, даже если задачи отменены', прежде чем их убивать
  переменные: {строка: строка} | [переменная | variableReference]
  шаги: [сценарий | баш | pwsh | PowerShell | оформление заказа | задача | templateReference]
  услуги: {строка: строка | container} # ресурсы контейнера для запуска в качестве контейнера службы
  

Полный синтаксис для указания задания:

  - задание: строка # название задания, A-Z, a-z, 0-9 и подчеркивание
  displayName: string # понятное имя для отображения в пользовательском интерфейсе
  зависит от: строка | [ нить ]
  условие: строка
  стратегия:
    parallel: # параллельная стратегия
    матрица: # матричная стратегия
    maxParallel: number # максимальное количество одновременных участков матрицы для запуска
    # примечание: `parallel` и` matrix` исключают друг друга
    # вы можете указать одно или другое; включая оба - ошибка
    # `maxParallel` действительно только с` matrix`
  continueOnError: boolean # 'true', если будущие задания должны выполняться, даже если это задание завершилось ошибкой; по умолчанию false
  pool: pool # пул агентов
  рабочая среда:
    чистый: выходы | ресурсы | all # что убрать перед запуском задания
  container: containerReference # контейнер для запуска этого задания внутри
  timeoutInMinutes: number # сколько времени нужно выполнять до автоматической отмены
  cancelTimeoutInMinutes: number # сколько времени дать 'запускать всегда, даже если задачи отменены', прежде чем их убивать
  переменные: {строка: строка} | [переменная | variableReference]
  шаги: [сценарий | баш | pwsh | PowerShell | оформление заказа | задача | templateReference]
  услуги: {строка: строка | container} # ресурсы контейнера для запуска в качестве контейнера службы
  использует: # Любые ресурсы (репозитории или пулы), необходимые для этого задания, которые еще не упоминаются
    репозитории: [строка] # ссылки на репозитории Azure Git
    пулы: [строка] # Имена пулов, обычно при использовании матричной стратегии для задания
  

Если основной целью вашей работы является развертывание приложения (а не сборка или тестирование приложения), вы можете использовать специальный тип задания, называемый задание развертывания .

Синтаксис задания развертывания:

  - развертывание: строка # вместо ключевого слова задания, используйте ключевое слово развертывания
  бассейн:
    имя: строка
    требования: строка | [ нить ]
  среда: строка
  стратегия:
    runOnce:
      развертывать:
        шаги:
        - скрипт: echo Привет!
  

Хотя вы можете добавить шаги для задач развертывания в задание , мы рекомендуем вместо этого использовать задание развертывания. У задания по развертыванию есть несколько преимуществ. Например, вы можете выполнить развертывание в среде, которая включает такие преимущества, как возможность видеть историю того, что вы развернули.

YAML не поддерживается в этой версии TFS.

Чтобы добавить задания в конвейер сборки, отредактируйте конвейер на странице «Конвейеры». Выберите ... , чтобы добавить задание.

Чтобы добавить задания в конвейер выпуска, отредактируйте конвейер из Конвейеры > Выпуски . Просмотрите этапные задачи на этапе, на котором вы хотите добавить свою работу. Выберите ... , чтобы добавить задание.

Виды работ

Задания могут быть разных типов в зависимости от того, где они выполняются.

  • Задания пула агентов выполняются на агенте в пуле агентов.
  • Серверные задания выполняются на сервере Azure DevOps.
  • Задания контейнера выполняются в контейнере агента в пуле агентов. Дополнительные сведения о выборе контейнеров см. В разделе Определение заданий контейнера.
  • Задания пула агентов выполняются на агенте в пуле агентов.
  • Серверные задания выполняются на сервере Azure DevOps.
  • Задания группы развертывания выполняются на машинах в группе развертывания.Эти задания доступны только в конвейере выпуска. Дополнительные сведения об определении групп целевых серверов для развертывания см. В разделе Задания группы развертывания.
  • Задания пула агентов выполняются на агенте в пуле агентов.
  • Серверные задания выполняются на сервере Azure DevOps.
  • Задания пула агентов выполняются на агенте в пуле агентов.
  • Серверные задания выполняются на сервере Azure DevOps.
  • Задания группы развертывания выполняются на машинах в группе развертывания.Эти задания доступны только в конвейере выпуска.
  • Задания пула агентов выполняются на агенте в пуле агентов. Эти задания доступны в конвейерах сборки и выпуска.
  • Серверные задания выполняются в TFS. Эти задания доступны в конвейерах сборки и выпуска.
  • Задания группы развертывания выполняются на машинах в группе развертывания. Эти задания доступны только в конвейерах выпуска.
  • Задания пула агентов выполняются на агенте в пуле агентов.Эти задания доступны только в конвейерах выпуска.

Вакансий пула агентов

Это наиболее распространенный тип заданий, выполняемых агентом в пуле агентов.

  • При использовании агентов, размещенных на сервере Microsoft, каждое задание в конвейере получает новый агент.
  • Используйте требования с автономными агентами, чтобы указать, какими возможностями должен обладать агент для выполнения вашего задания. Вы можете получить одного и того же агента для последовательных заданий в зависимости от того, есть ли в вашем пуле агентов более одного агента, который соответствует требованиям вашего конвейера.Если в вашем пуле есть только один агент, который соответствует требованиям конвейера, конвейер будет ждать, пока этот агент не станет доступным.

Примечание

Требования и возможности предназначены для использования с автономными агентами, поэтому задания могут быть сопоставлены с агентом, который соответствует требованиям работы. При использовании агентов, размещенных в Microsoft, вы выбираете образ для агента, который соответствует требованиям работы, поэтому, хотя можно добавить возможности для агента, размещенного на сервере Microsoft, вам не нужно использовать возможности с агентами, размещенными на сервере Microsoft.

  бассейн:
  name: myPrivateAgents # ваша работа выполняется на агенте в этом пуле
  Требования: agent.os -equals Windows_NT # агент должен иметь эту возможность для выполнения задания
шаги:
- скрипт: эхо привет, мир
  

Или несколько запросов:

  бассейн:
  имя: myPrivateAgents
  требования:
  - agent.os - равно Дарвину
  - anotherCapability - равно somethingElse
шаги:
- скрипт: эхо привет, мир
  

YAML еще не поддерживается в TFS.

У вас есть возможность указать потребности в конвейере, в заданиях или в обоих.Если вы указываете потребности как в конвейере, так и в задании, для выбора агента системе потребуется объединение двух наборов требований.

Узнайте больше о возможностях агента.

Серверные вакансии

Задачи в задании сервера организуются и выполняются на сервере (Azure Pipelines или TFS). Серверное задание не требует агента или каких-либо целевых компьютеров. В настоящее время серверное задание поддерживает лишь несколько задач.

Задания без агента Поддерживаемые задачи

В настоящее время для заданий без агента из коробки поддерживаются только следующие задачи:

Поскольку задачи являются расширяемыми, вы можете добавлять дополнительные задачи без агентов с помощью расширений.Тайм-аут по умолчанию для заданий без агента составляет 60 минут.

Полный синтаксис для указания задания сервера:

  вакансий:
- работа: строка
  timeoutInMinutes: число
  cancelTimeoutInMinutes: число
  стратегия:
    maxParallel: число
    матрица: {строка: {строка: строка}}

  пул: сервер
  

Вы также можете использовать упрощенный синтаксис:

  вакансий:
- работа: строка
  пул: сервер
  

YAML еще не поддерживается в TFS.

Вы добавляете серверное задание в редактор, выбирая '... 'на канале Pipeline на вкладке Tasks конвейера. Свойства задания сервера отображаются при выборе задания в редакторе.

Серверные задания не поддерживаются в этой версии TFS.

Зависимости

Когда вы определяете несколько заданий на одном этапе, вы можете указать зависимости между ними. Конвейеры должны содержать хотя бы одно задание без зависимостей.

Примечание

Каждый агент может одновременно запускать только одно задание.Для параллельного выполнения нескольких заданий необходимо настроить несколько агентов. Вам также потребуется достаточное количество параллельных работ.

Синтаксис для определения нескольких заданий и их зависимостей:

  вакансий:
- работа: строка
  зависит от: строка
  условие: строка
  

Примеры заданий, которые строятся последовательно:

  вакансий:
- задание: Отладка
  шаги:
  - скрипт: эхо-привет из сборки отладки
- работа: Релиз
  зависит от: Отладка
  шаги:
  - скрипт: эхо-привет из сборки Release
  

Примеры заданий, которые строятся параллельно (без зависимостей):

  вакансий:
- работа: Windows
  бассейн:
    vmImage: 'vs2017-win2016'
  шаги:
  - скрипт: эхо-привет из Windows
- работа: macOS
  бассейн:
    vmImage: 'macOS-10.14 '
  шаги:
  - скрипт: эхо-привет из macOS
- работа: Linux
  бассейн:
    vmImage: 'убунту-16.04'
  шаги:
  - скрипт: эхо привет из Linux
  

Пример разветвления:

  вакансий:
- работа: InitialJob
  шаги:
  - скрипт: эхо-привет из начальной работы
- работа: SubsequentA
  зависит от: InitialJob
  шаги:
  - скрипт: эхо-привет от последующего A
- работа: SubsequentB
  зависит от: InitialJob
  шаги:
  - скрипт: эхо-привет от последующего B
  

Пример разветвления:

  вакансий:
- работа: InitialA
  шаги:
  - скрипт: эхо привет от начального A
- работа: InitialB
  шаги:
  - скрипт: эхо привет от начального B
- работа: Последующая
  зависит от:
  - InitialA
  - InitialB
  шаги:
  - скрипт: эхо-привет от последующих
  
Сборки

YAML пока недоступны для TFS.

Чтобы добавить новое задание, выберите «...» в канале конвейера на вкладке Задачи конвейера. Условия и порядок выполнения задания отображаются при выборе задания в редакторе.

Когда вы указываете несколько заданий в конвейере сборки, по умолчанию они выполняются параллельно. Вы можете указать порядок, в котором задания должны выполняться, настроив зависимости между заданиями. Зависимости заданий не поддерживаются в конвейерах выпуска. Несколько заданий в конвейере выпуска выполняются последовательно.

Несколько заданий, которые вы добавляете в конвейер сборки или выпуска, выполняются последовательно. Вы не можете настроить порядок зависимостей между заданиями в этой версии TFS.

Несколько заданий, которые вы добавляете в конвейер выпуска, запускаются последовательно. Вы не можете настроить порядок зависимостей между заданиями в этой версии TFS. Вы также не можете использовать задания с конвейерами сборки.

Например, показанный ниже конвейер делит общий выпуск выполнение в отдельные задания выполнения с использованием двух заданий агента и серверная работа.

В приведенном выше примере:

  1. Задачи в первом задании выпуска выполняются на агенте и после того, как эта работа будет завершена, агент будет освобожден.

  2. Задание сервера содержит задачу ручного вмешательства который работает в Azure Pipelines или TFS. Задание не выполняется и не требует агента или каких-либо целевых серверов. Задача ручного вмешательства отображает свое сообщение и ожидает "возобновить" или "отклонить" ответ пользователя. В этом примере, если истечет установленный тайм-аут, задача будет автоматически отклонить развертывание (установите тайм-аут в разделе параметров управления равным нулю, если вы не хотите, чтобы генерировался автоматический ответ).

  3. Если выпуск возобновлен, задачи в третьем задании выполняются - возможно, на другом агенте. Если выпуск отклонен, это задание не выполняется, и выпуск помечен как неудачный.

Важно понимать некоторые последствия поэтапное исполнение:

  • Каждое задание может использовать разные агенты. Не думайте, что состояние из более раннего работа доступна во время последующих работ.

  • Продолжить при ошибке и Всегда запускать параметры для задачи в каждой работе не влияют на задачи в последующие работы.Например, установка Всегда запускать для задачи в конце первого задания будет не гарантирует, что задачи в последующих заданиях будут выполняться.

Условия

Вы можете указать условия, при которых будет выполняться каждое задание. По умолчанию задание запускается, если оно не зависит от других заданий или если все задания, от которых оно зависит, завершены и успешно выполнены. Вы можете настроить это поведение, принудительно запустив задание даже в случае сбоя предыдущего задания или указав настраиваемое условие.

Пример запуска задания на основе статуса выполнения предыдущего задания:

  вакансий:
- работа: A
  шаги:
  - сценарий: выход 1

- работа: B
  зависит от: A
  условие: не удалось ()
  шаги:
  - скрипт: эхо, это будет запускаться, когда A терпит неудачу

- работа: C
  зависит от:
  - А
  - В
  условие: выполнено успешно ('B')
  шаги:
  - script: echo, это будет запускаться, когда B запускается и преуспевает
  

Пример использования специального условия:

  вакансий:
- работа: A
  шаги:
  - скрипт: эхо привет

- работа: B
  зависит от: A
  условие: и (выполнено успешно (), уравнение (переменные ['build.sourceBranch '],' refs / heads / master '))
  шаги:
  - script: echo, это работает только для мастера
  

Вы можете указать, что задание запускается на основе значения выходной переменной, установленной в предыдущем задании. В этом случае вы можете использовать только переменные, установленные в напрямую зависимых заданиях:

  вакансий:
- работа: A
  шаги:
  - сценарий: "echo ## vso [task.setvariable variable = skipsubsequent; isOutput = true] false"
    имя: printvar

- работа: B
  condition: and (success (), ne (dependencies.A.outputs ['printvar.skipsubsequent '],' истина '))
  зависит от: A
  шаги:
  - скрипт: эхо привет от B
  
Сборки

YAML пока недоступны для TFS.

Используйте параметр Запустить это задание в задании агента или сервера для выполнения задач. только при соблюдении определенных условий. Выберите предопределенный условие или выберите "custom" и введите выражение, которое оценивает к истинно или ложно . Могут использоваться вложенные выражения, а выражения могут обращаться к переменным, доступным в конвейере выпуска.

Условия не поддерживаются в этой версии TFS.

Таймауты

Чтобы избежать использования ресурсов, когда задание не отвечает или слишком долго находится в режиме ожидания, рекомендуется установить ограничение на время, в течение которого задание может выполняться. Используйте параметр тайм-аута задания, чтобы указать ограничение в минутах для выполнения задания. Установка значения ноль означает, что задание может выполняться:

  • Навсегда на собственных агентах
  • На 360 минут (6 часов) на агентах, размещенных в Microsoft, с общедоступным проектом и общедоступным репозиторием
  • На 60 минут на агентах, размещенных в Microsoft, с частным проектом или частным репозиторием (если не оплачена дополнительная мощность)

Период ожидания начинается при запуске задания.Он не включает время, когда задание поставлено в очередь или ожидает агента.

timeoutInMinutes позволяет установить предел времени выполнения задания. Если не указано иное, значение по умолчанию составляет 60 минут. Если указан 0 , используется максимальный предел (описанный выше).

cancelTimeoutInMinutes позволяет установить ограничение на время отмены задания, когда задача развертывания настроена на продолжение выполнения в случае сбоя предыдущей задачи. Если не указано иное, значение по умолчанию составляет 5 минут.Значение должно быть в диапазоне от 1 до 35790 минут.

  вакансий:
- работа: Тест
  timeoutInMinutes: 10 # как долго запускать задание до автоматической отмены
  cancelTimeoutInMinutes: 2 # сколько времени дать 'запускать всегда, даже если задачи отменены' перед их остановкой
  

YAML еще не поддерживается в TFS.

Выберите задание и укажите значение тайм-аута.

На вкладке «Параметры» можно указать значения по умолчанию для всех заданий в конвейере.Если вы укажете ненулевое значение для тайм-аута задания, оно переопределит любое значение, указанное в параметрах конвейера. Если вы указываете нулевое значение, то используется значение тайм-аута из параметров конвейера. Если значение конвейера также установлено равным нулю, то таймаута нет.

Вы также можете установить тайм-аут для каждой задачи индивидуально - см. Параметры управления задачами.

Многозадачная конфигурация

Из одного созданного вами задания вы можете запускать несколько заданий на нескольких агентах параллельно.Некоторые примеры включают:

  • Сборки с несколькими конфигурациями: Вы можете создавать несколько конфигураций параллельно. Для Например, вы можете создать приложение Visual C ++ для конфигураций debug и release на платформах x86 и x64 . Чтобы узнать больше, см. Visual Studio Build - несколько конфигураций для нескольких платформ.

  • Развертывания с несколькими конфигурациями: Можно запустить несколько развертываний параллельно, например, в разные географические регионы.

  • Тестирование нескольких конфигураций: Вы можете запустить тестирование нескольких конфигураций параллельно.

Матрица Стратегия позволяет выполнять задание несколько раз с разными наборами переменных. Тег maxParallel ограничивает степень параллелизма. Следующее задание будет отправлено три раза с указанными значениями Location и Browser. Однако одновременно будут выполняться только два задания.

  вакансий:
- работа: Тест
  стратегия:
    maxParallel: 2
    матрица:
      US_IE:
        Расположение: США
        Браузер: IE
      US_Chrome:
        Расположение: США
        Браузер: Chrome
      Европа_Хром:
        Расположение: Европа
        Браузер: Chrome
  

Примечание

Имена конфигурации матрицы

(например, US_IE выше) должны содержать только основные буквы латинского алфавита (A-Z, a-z), цифры и символы подчеркивания ( _ ).Они должны начинаться с буквы. Кроме того, они должны содержать не более 100 символов.

Также можно использовать выходные переменные для создания матрицы. Это может быть удобно, если вам нужно сгенерировать матрицу с помощью скрипта.

матрица примет выражение времени выполнения, содержащее строковый объект JSON. Этот объект JSON при раскрытии должен соответствовать синтаксису матричного преобразования. В приведенном ниже примере мы жестко запрограммировали строку JSON, но она может быть сгенерирована языком сценариев или программой командной строки.

  вакансий:
- работа: генератор
  шаги:
  - bash: echo "## vso [task.setVariable variable = legs; isOutput = true] {'a': {'myvar': 'A'}, 'b': {'myvar': 'B'}}"
    имя: mtrx
  # Это расширяется до матрицы
  # а:
  # myvar: A
  # b:
  # myvar: B
- работа: бегун
  зависит от: генератор
  стратегия:
    матрица: $ [dependencies.generator.outputs ['mtrx.legs']]
  шаги:
  - script: echo $ (myvar) # отображает A или B в зависимости от того, какая нога работает
  

YAML не поддерживается в TFS.

Для выполнения нескольких заданий с использованием опции мультиконфигурации, вы определяете переменную с именем , множитель и указываете список значений этого множителя. Для каждого значения выполняется отдельное задание в списке. Чтобы использовать множители для сборки или развертывания, необходимо:

  • Определите одну или несколько переменных на вкладке Переменные конвейера или в группе переменных. Каждая переменная, известная в этом контексте как переменная умножителя , должен быть определен как список значений, разделенных запятыми, которые вы хотите переходить индивидуально к агентам.

  • Введите имя переменной множителя без $ и круглых скобок, как значение параметра Multipliers . Использование секретной переменной в качестве переменной множителя не поддерживается.

  • Если вы хотите выполнить задание для нескольких переменных множителя, введите имена переменных в виде списка с разделителями-запятыми - без $ и круглых скобок для каждого.

  • Если вы хотите ограничить количество агентов, используемых во время развертывания, одним число меньше, чем вы настроили для своей подписки, введите это значение как Максимальное количество агентов параметр.

Например, вы можете определить две переменные с именами Location и Browser следующим образом:

  • Местоположение = США, Европа
  • Браузер = IE, Chrome, Edge, Firefox

Следующая конфигурация выполнит развертывание восемь раз с использованием максимум четыре агента одновременно:

  • Множители = Местоположение, браузер
  • Максимальное количество агентов = 4

При использовании нескольких конфигураций вы можете запускать несколько заданий, каждое с разными значениями для одной или нескольких переменных (множителей).Если вы хотите запустить одно и то же задание на нескольких агентах, вы можете использовать опцию параллелизма с несколькими агентами и . Приведенный выше пример нарезки теста может быть выполнен с помощью опции мультиагентности.

Нарезка

Задание агента может использоваться для параллельного запуска набора тестов. Например, вы можете запустить большой набор из 1000 тестов на одном агенте. Или вы можете использовать два агента и запустить 500 тестов на каждом параллельно.

Чтобы использовать срезы, задачи в работе должны быть достаточно умными, чтобы понимать срез, к которому они принадлежат.

Задача Visual Studio Test - одна из таких задач, которая поддерживает срезы тестов. Если вы установили несколько агентов, вы можете указать, как задача Visual Studio Test будет выполняться параллельно на этих агентах.

Стратегия параллельный позволяет многократно дублировать задание. Переменные System.JobPositionInPhase и System.TotalJobsInPhase добавляются к каждому заданию. Затем переменные можно использовать в ваших сценариях для разделения работы между заданиями.См. Параллельное и множественное выполнение с использованием заданий агента.

Следующее задание будет отправлено пять раз с соответствующими значениями System.JobPositionInPhase и System.TotalJobsInPhase .

  вакансий:
- работа: Тест
  стратегия:
    параллельно: 5
  

YAML еще не поддерживается в TFS.

Укажите опцию с несколькими агентами для задания агента, чтобы использовать срезы. Задание отправляется столько раз, сколько агентов вы укажете, и переменные System.JobPositionInPhase и System.TotalJobsInPhase автоматически устанавливаются в каждом задании.

Переменные задания

Если вы используете YAML, в задании можно указать переменные. Переменные могут быть переданы на вход задачи с помощью синтаксиса макроса $ (variableName) или доступны в сценарии с помощью переменной stage.

Вот пример определения переменных в задании и их использования в задачах.

  переменных:
  mySimpleVar: простое значение переменной
  "мой.dotted.var ": значение var, разделенное точками
  "мой var с пробелами": var с пробелами значение

шаги:
- скрипт: echo Input macro = $ (mySimpleVar). Env var =% MYSIMPLEVAR%
  условие: eq (переменные ['agent.os'], 'Windows_NT')
- скрипт: echo Input macro = $ (mySimpleVar). Env var = $ MYSIMPLEVAR
  условие: in (переменные ['agent.os'], 'Дарвин', 'Linux')
- bash: echo Input macro = $ (my.dotted.var). Env var = $ MY_DOTTED_VAR
- powershell: Write-Host «Входной макрос = $ (моя переменная с пробелами). Env var = $ env: MY_VAR_WITH_SPACES»
  

YAML еще не поддерживается в TFS.

Переменные задания еще не поддерживаются в веб-редакторе.

Для получения информации об использовании условия см. Определение условий.

Рабочее пространство

Когда вы запускаете задание пула агентов, оно создает рабочее пространство на агенте. Рабочее пространство - это каталог, в котором он загружает исходный код, выполняет шаги и производит выходные данные. На каталог рабочей области можно ссылаться в вашем задании с помощью переменной Pipeline.Workspace . При этом создаются различные подкаталоги:

Когда вы запускаете задание пула агентов, оно создает рабочее пространство на агенте.Рабочее пространство - это каталог, в котором он загружает исходный код, выполняет шаги и производит выходные данные. На каталог рабочей области можно ссылаться в вашем задании с помощью переменной Agent.BuildDirectory . При этом создаются различные подкаталоги:

  • Build.SourcesDirectory - это место, куда задачи загружают исходный код приложения.
  • Build.ArtifactStagingDirectory - это место, где задачи загружают артефакты, необходимые для конвейера, или загружают артефакты перед их публикацией.
  • Build.BinariesDirectory - это каталог, в который задачи записывают свои выходные данные.
  • Common.TestResultsDirectory - это то место, куда задачи загружают результаты своих тестов.

Когда вы запускаете конвейер на локальном агенте , по умолчанию ни один из подкаталогов не очищается между двумя последовательными запусками. В результате вы можете выполнять инкрементные сборки и развертывания при условии, что задачи реализованы так, чтобы использовать это. Вы можете переопределить это поведение, используя настройку рабочего пространства в задании.

Важно

Параметры очистки рабочего пространства применимы только для локальных агентов. При использовании агентов, размещенных на сервере Microsoft, задание всегда запускается на новом агенте.

  - работа: myJob
  рабочая среда:
    чистый: выходы | ресурсы | all # что убрать перед запуском задания
  

Когда вы указываете одну из опций clean , они интерпретируются следующим образом:

  • выводит : Удалите Build.BinariesDirectory перед запуском нового задания.
  • ресурсов : Удалите Build.SourcesDirectory перед запуском нового задания.
  • все : удалить весь каталог Pipeline.Workspace перед запуском нового задания.

$ (Build.ArtifactStagingDirectory) и $ (Common.TestResultsDirectory) всегда удаляются и воссоздаются перед каждой сборкой независимо от любого из этих параметров.

  вакансий:
  - развертывание: развертывание
    бассейн:
      vmImage: 'Ubuntu-16.04 '
    рабочая среда:
      чистый: все
    среда: постановка
  

Примечание

В зависимости от возможностей вашего агента и требований конвейера каждое задание может быть направлено другому агенту в вашем собственном пуле. В результате вы можете получить новый агент для последующих запусков конвейера (или этапов или заданий в том же конвейере), поэтому очистка , а не не является гарантией того, что последующие запуски, задания или этапы смогут получить доступ к выходным данным из предыдущих пробеги, задания или этапы. Вы можете настроить возможности агента и требования конвейера, чтобы указать, какие агенты используются для выполнения задания конвейера, но если в пуле нет только одного агента, который удовлетворяет требованиям, нет гарантии, что последующие задания будут использовать тот же агент, что и предыдущие. рабочие места.Для получения дополнительной информации см. Определение требований.

В дополнение к очистке рабочего пространства вы также можете настроить очистку, настроив параметр Очистить в пользовательском интерфейсе настроек конвейера. Когда для параметра Clean установлено значение true , это эквивалентно указанию clean: true для каждого шага проверки в конвейере. Чтобы настроить параметр Clean :

  1. Отредактируйте конвейер, выберите ... и выберите Триггеры .

  2. Выберите YAML , Получите источники и настройте желаемый параметр Очистить . По умолчанию false .

YAML еще не поддерживается в TFS.

Когда вы запускаете конвейер на локальном агенте, по умолчанию ни один из подкаталогов не очищается между двумя последовательными запусками. В результате вы можете запускать инкрементные сборки и развертывания при условии, что для этого реализованы задачи.Однако вы можете переопределить это поведение с помощью параметра Очистить сборку в задаче Получить источники . Параметры различаются в зависимости от типа репозитория, который вы используете.

Артефакт скачать

Этот пример файла YAML публикует артефакт WebSite , а затем загружает артефакт в $ (Pipeline.Workspace) . Задание развертывания выполняется только в том случае, если задание сборки выполнено успешно.

  # протестировать и загрузить мой код как артефакт с именем WebSite
вакансии:
- работа: Сборка
  бассейн:
    vmImage: 'ubuntu-16.04 '
  шаги:
  - скрипт: npm test
  - задача: PublishBuildArtifacts @ 1
    входы:
      pathtoPublish: '$ (System.DefaultWorkingDirectory)'
      artifactName: WebSite

# скачать артефакт и развернуть его, только если сборка прошла успешно
- задание: Развернуть
  бассейн:
    vmImage: 'убунту-16.04'
  шаги:
  - checkout: none # пропустить проверку ресурса репозитория по умолчанию
  - задача: DownloadBuildArtifacts @ 0
    displayName: 'Загрузить артефакты сборки'
    входы:
      artifactName: WebSite
      downloadPath: $ (System.DefaultWorkingDirectory)

  зависит от: Сборка
  условие: выполнено успешно ()
  

YAML еще не поддерживается в TFS.

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

Кроме того, вы можете выбрать загрузку определенных артефактов во время выполнения задания в выпуске.Используйте эту опцию, если задачи в конкретном задании полагаются только на определенные артефакты.

Сведения об использовании в зависимости от и условия см. В разделе Определение условий.

Доступ к токену OAuth

Вы можете разрешить скриптам, выполняющимся в задании, получить доступ к текущему токену безопасности Azure Pipelines или TFS OAuth. Маркер можно использовать для аутентификации в REST API Azure Pipelines.

Токен OAuth всегда доступен конвейерам YAML.Он должен быть явно сопоставлен с задачей или шагом с помощью env . Вот пример:

  шагов:
- PowerShell: |
    $ url = "$ ($ env: SYSTEM_TEAMFOUNDATIONCOLLECTIONURI) $ env: SYSTEM_TEAMPROJECTID / _apis / build / definitions / $ ($ env: SYSTEM_DEFINITIONID)? api-version = 4.1-preview"
    Write-Host "URL: $ url"
    $ pipeline = Invoke-RestMethod -Uri $ url -Headers @ {
      Authorization = "Bearer $ env: SYSTEM_ACCESSTOKEN"
    }
    Write-Host "Pipeline = $ ($ pipeline | ConvertTo-Json -Depth 100)"
  env:
    SYSTEM_ACCESSTOKEN: $ (system.accesstoken)
  

YAML еще не поддерживается в TFS.

Выберите Разрешить сценариям доступ к токену OAuth в параметрах управления заданием. Токен будет доступен как переменная окружения SYSTEM_ACCESSTOKEN .

Что дальше?

лучших практик - пакет Azure

  • 17 минут на чтение

В этой статье

В этой статье обсуждаются передовые практики и полезные советы по эффективному использованию пакетной службы Azure.Эти советы помогут повысить производительность и избежать ошибок при проектировании пакетных решений.

Бассейны

Пулы - это вычислительные ресурсы для выполнения заданий в пакетной службе. В следующих разделах представлены рекомендации по работе с пакетными пулами.

Конфигурация пула и наименование

  • Режим распределения пула: При создании учетной записи пакетной службы вы можете выбрать один из двух режимов распределения пула: Пакетное обслуживание или подписка пользователя .В большинстве случаев следует использовать режим пакетной службы по умолчанию, в котором пулы выделяются за кулисами в подписках, управляемых пакетной службой. В альтернативном режиме подписки пользователя пакетные виртуальные машины и другие ресурсы создаются непосредственно в вашей подписке при создании пула. Учетные записи подписки пользователей в основном используются для включения небольшого, но важного подмножества сценариев. Дополнительные сведения см. В разделе Дополнительная конфигурация для режима подписки пользователя.

  • virtualMachineConfiguration или cloudServiceConfiguration: Хотя в настоящее время вы можете создавать пулы, используя любую конфигурацию, новые пулы следует настраивать с помощью virtualMachineConfiguration, а не cloudServiceConfiguration.Все текущие и новые функции пакетной обработки будут поддерживаться пулами конфигурации виртуальных машин. Пулы конфигурации облачных сервисов не поддерживают все функции, и новых возможностей не планируется. Вы не сможете создавать новые пулы «cloudServiceConfiguration» или добавлять новые узлы в существующие пулы после 29 февраля 2024 г. Дополнительные сведения см. В разделе «Перенос конфигурации пула пакетной обработки из облачных служб в виртуальную машину».

  • Замечания по времени выполнения заданий и задач: Если у вас есть задания, состоящие в основном из краткосрочных задач, и ожидаемое общее количество задач невелико, так что общее ожидаемое время выполнения задания невелико, не выделяйте новый пул для каждой работы.Время выделения узлов уменьшит время выполнения задания.

  • Несколько вычислительных узлов: Не всегда гарантируется, что отдельные узлы будут всегда доступны. В редких случаях сбои оборудования, обновления операционной системы и множество других проблем могут привести к отключению отдельных узлов. Если ваша пакетная рабочая нагрузка требует детерминированного гарантированного прогресса, вам следует выделить пулы с несколькими узлами.

  • Изображения с приближающимся окончанием срока службы (EOL): Мы настоятельно рекомендуем избегать изображений с приближающимся сроком окончания срока службы пакетной поддержки (EOL).Эти даты можно узнать с помощью API ListSupportedImages , PowerShell или Azure CLI. Вы обязаны периодически обновлять представление о датах EOL, относящихся к вашим пулам, и переносить рабочие нагрузки до наступления даты EOL. Если вы используете настраиваемое изображение с указанным агентом узла, убедитесь, что вы соблюдаете даты окончания срока службы пакетной поддержки для изображения, для которого создано или выровнено ваше настраиваемое изображение.

  • Уникальные имена ресурсов: Пакетные ресурсы (задания, пулы и т. Д.)) часто приходят и уходят со временем. Например, вы можете создать пул в понедельник, удалить его во вторник, а затем создать еще один аналогичный пул в четверг. Каждому новому ресурсу, который вы создаете, должно быть присвоено уникальное имя, которое вы раньше не использовали. Вы можете сделать это, используя GUID (либо как полное имя ресурса, либо как его часть) или вставив дату и время создания ресурса в имя ресурса. Пакетная служба поддерживает DisplayName, которое может дать ресурсу более удобочитаемое имя, даже если фактический идентификатор ресурса не удобен для человека.Использование уникальных имен упрощает определение того, какой конкретный ресурс что-то сделал в журналах и показателях. Это также устраняет двусмысленность, если вам когда-либо придется подавать заявку в службу поддержки для ресурса.

  • Непрерывность во время обслуживания пула и сбоя: Лучше всего, чтобы ваши задания использовали пулы динамически. Если ваши задания используют один и тот же пул для всего, есть вероятность, что задания не будут выполняться, если что-то пойдет не так с пулом. Это особенно важно для рабочих нагрузок, чувствительных ко времени.Чтобы исправить это, выберите или создайте пул динамически при планировании каждого задания или найдите способ переопределить имя пула, чтобы можно было обойти неработоспособный пул.

  • Непрерывность бизнеса во время обслуживания и сбоя пула: Существует множество причин, по которым пул не может вырасти до желаемого размера, например внутренние ошибки или ограничения емкости. При необходимости убедитесь, что вы можете переназначить задания в другом пуле (возможно, с другим размером виртуальной машины; пакетная служба поддерживает это через UpdateJob).Не полагайтесь на статический идентификатор пула, ожидая, что он никогда не будет удален и никогда не изменится.

Срок службы пула и выставление счетов

Время жизни пула может варьироваться в зависимости от метода распределения и параметров, применяемых к конфигурации пула. Пулы могут иметь произвольное время жизни и различное количество вычислительных узлов в любой момент времени. Вы несете ответственность за управление вычислительными узлами в пуле либо явно, либо с помощью функций, предоставляемых службой (автомасштабирование или автопул).

  • Актуальность пула: Обнуляйте размер пулов каждые несколько месяцев, чтобы получать последние обновления агента узла и исправления ошибок. Ваш пул не будет получать обновления агента узла, если он не будет воссоздан (или если его размер не будет изменен до 0 вычислительных узлов). Перед воссозданием или изменением размера пула необходимо загрузить все журналы агента узла для целей отладки, как описано в разделе «Узлы».

  • Восстановление бассейнов: Аналогичным образом, избегайте удаления и повторного создания бассейнов на ежедневной основе.Вместо этого создайте новый пул, а затем обновите существующие задания, чтобы они указывали на новый пул. Как только все задачи будут перемещены в новый пул, удалите старый пул.

  • Эффективность пула и выставление счетов: Сама пакетная обработка не требует дополнительных затрат, но вы несете плату за используемые вычислительные ресурсы. Вам выставляется счет за каждый вычислительный узел в пуле, независимо от того, в каком состоянии он находится. Сюда входят все расходы, необходимые для работы узла, такие как расходы на хранение и сетевые ресурсы.Дополнительные сведения см. В разделе Анализ затрат и бюджеты для пакетной службы Azure.

Ошибки выделения пула

Сбои при выделении пула могут произойти в любой момент во время первого выделения или последующих изменений размера. Это может быть связано с временной нехваткой ресурсов в регионе или сбоями в других службах Azure, на которых полагается пакетная служба. Ваша основная квота - это не гарантия, а ограничение.

Незапланированный простой

Для пулов пакетной службы могут возникать события простоя в Azure.Помните об этом при планировании и разработке сценария или рабочего процесса для пакетной обработки. Если узлы выходят из строя, пакетная служба автоматически пытается восстановить эти вычислительные узлы от вашего имени. Это может вызвать изменение расписания любой выполняющейся задачи на восстанавливаемом узле. Чтобы узнать больше о прерванных задачах, см. Разработка для повторных попыток.

Пулы пользовательских изображений

Когда вы создаете пул пакетной службы Azure с помощью конфигурации виртуальной машины, вы указываете образ виртуальной машины, который предоставляет операционную систему для каждого вычислительного узла в пуле.Вы можете создать пул с помощью поддерживаемого образа Azure Marketplace или создать собственный образ с помощью общей галереи изображений. Хотя вы также можете использовать управляемое изображение для создания пользовательского пула изображений, мы рекомендуем создавать пользовательские изображения с помощью общей галереи изображений, когда это возможно. Использование общей галереи изображений помогает быстрее выделять пулы, масштабировать большее количество виртуальных машин и повышать надежность при подготовке виртуальных машин.

Сторонние образы

Пулы

можно создавать с использованием сторонних образов, опубликованных в Azure Marketplace.В режиме пользовательской подписки Пакетные учетные записи при создании пула с определенными сторонними изображениями могут отображаться с ошибкой «Распределение не удалось из-за проверки правомочности покупки на торговой площадке». Чтобы устранить эту ошибку, примите условия, установленные издателем изображения. Вы можете сделать это с помощью Azure PowerShell или Azure CLI.

Зависимость региона Azure

Не следует полагаться на один регион Azure, если у вас временная или производственная рабочая нагрузка. Редко, но есть проблемы, которые могут повлиять на весь регион.Например, если ваша обработка должна начаться в определенное время, рассмотрите возможность увеличения пула в вашем основном регионе задолго до времени начала . Если это масштабирование пула не удается, вы можете вернуться к масштабированию пула в резервной области (или регионах).

Пулы для нескольких учетных записей в разных регионах обеспечивают готовую, легкодоступную резервную копию, если что-то пойдет не так с другим пулом. Дополнительные сведения см. В разделе Разработка приложения для обеспечения высокой доступности.

Вакансий

Задание - это контейнер, предназначенный для хранения сотен, тысяч или даже миллионов задач.Следуйте этим рекомендациям при создании рабочих мест.

Меньше рабочих мест, больше задач

Использование задания для выполнения одной задачи неэффективно. Например, более эффективно использовать одно задание, содержащее 1000 задач, а не создавать 100 заданий, каждое из которых содержит 10 задач. Выполнение 1000 заданий, каждое из которых связано с одной задачей, будет наименее эффективным, самым медленным и самым дорогостоящим подходом.

По этой причине избегайте разработки пакетного решения, для которого требуются тысячи одновременно активных заданий.Квоты для задач нет, поэтому выполнение большого количества задач с минимальным количеством заданий позволяет эффективно использовать квоты вашего задания и расписания заданий.

Срок службы

Пакетное задание имеет неопределенный срок существования, пока оно не будет удалено из системы. Его состояние определяет, может ли он принимать больше задач для планирования или нет.

Задание не переходит автоматически в состояние завершения, если оно не завершено явным образом. Это может быть автоматически инициировано с помощью свойства onAllTasksComplete или maxWallClockTime.

Имеется активное задание и квота расписания заданий по умолчанию. Задания и расписания работ в завершенном состоянии не учитываются в этой квоте.

Задачи

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

Сохранить данные задания

Вычислительные узлы по своей природе недолговечны.Пакетные функции, такие как автопул и автомасштабирование, могут упростить исчезновение узлов. Когда узлы покидают пул (из-за изменения размера или удаления пула), все файлы на этих узлах также удаляются. Из-за этого задача должна переместить свои выходные данные с узла, на котором она выполняется, в долговременное хранилище до завершения. Точно так же, если задача не удалась, она должна переместить журналы, необходимые для диагностики сбоя, в долговременное хранилище.

Batch имеет интегрированную поддержку службы хранилища Azure для отправки данных через OutputFiles, а также через различные общие файловые системы, или вы можете выполнять загрузку самостоятельно в своих задачах.

Управление временем существования задачи

Удалите задачи, когда они больше не нужны, или установите ограничение задачи retentionTime. Если установлено значение retentionTime , пакетная служба автоматически очищает дисковое пространство, используемое задачей, когда истекает retentionTime .

Удаление задач позволяет решить две задачи. Это гарантирует, что у вас не будет набора задач в работе, что может затруднить запрос / поиск задачи, которая вас интересует (потому что вам придется фильтровать завершенные задачи).Он также очищает соответствующие данные задачи на узле (при условии, что retentionTime еще не достигнуто). Это помогает гарантировать, что ваши узлы не заполнятся данными задач и не исчерпают дисковое пространство.

Отправьте большое количество задач в коллекцию

Задания можно подавать индивидуально или коллекциями. Отправляйте задачи в коллекциях до 100 одновременно при массовой отправке задач, чтобы сократить накладные расходы и время отправки.

Установите максимальное количество задач для каждого узла соответствующим образом

Batch поддерживает задачи с превышением лимита подписки на узлах (выполняется больше задач, чем на узле имеется ядер).Вы должны убедиться, что ваши задачи «вписываются» в узлы вашего пула. Например, у вас может возникнуть ухудшение работы, если вы попытаетесь запланировать восемь задач, каждая из которых потребляет 25% использования ЦП на одном узле (в пуле с taskSlotsPerNode = 8 ).

Дизайн для повторных попыток и повторного выполнения

Задачи могут быть автоматически повторены в пакетном режиме. Есть два типа повторных попыток: контролируемые пользователем и внутренние. Повторные попытки, контролируемые пользователем, задаются параметром maxTaskRetryCount задачи.Когда программа, указанная в задаче, завершается с ненулевым кодом выхода, задача повторяется до значения maxTaskRetryCount .

Хотя это бывает редко, выполнение задачи может быть выполнено повторно из-за сбоев на вычислительном узле, таких как невозможность обновить внутреннее состояние или сбой на узле во время выполнения задачи. Задача будет повторена на том же вычислительном узле, если это возможно, до внутреннего предела, прежде чем отказаться от задачи и отложить выполнение задачи для повторного планирования пакетной службой, возможно, на другом вычислительном узле.

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

Создавайте долговечные задачи

Задачи должны быть разработаны таким образом, чтобы выдерживать отказ и допускать повторные попытки. Это особенно важно для длительных задач. Для этого убедитесь, что задачи генерируют один и тот же результат, даже если они выполняются более одного раза.Один из способов добиться этого - сделать ваши задачи «целенаправленными». Другой способ - убедиться, что ваши задачи идемпотентны (задачи будут иметь одинаковый результат независимо от того, сколько раз они запускаются).

Типичный пример - это задача по копированию файлов на вычислительный узел. Простой подход - это задача, которая копирует все указанные файлы при каждом запуске, что неэффективно и не способно противостоять сбоям. Вместо этого создайте задачу, чтобы убедиться, что файлы находятся на вычислительном узле; задача, которая не копирует уже существующие файлы.Таким образом, задача возобновляется с того места, где она была остановлена, если она была прервана.

Избегайте короткого времени выполнения

Задачи, которые выполняются в течение одной-двух секунд, не идеальны. Постарайтесь выполнить значительный объем работы над индивидуальным заданием (минимум 10 секунд, до часов или дней). Если каждая задача выполняется в течение одной минуты (или более), то накладные расходы на планирование как часть общего времени вычислений невелики.

Используйте область пула для коротких задач на узлах Windows

При планировании задачи на узлах пакетной обработки вы можете выбрать, запускать ли ее с областью задачи или с областью пула.Если задача будет выполняться только в течение короткого времени, область задачи может быть неэффективной из-за ресурсов, необходимых для создания автоматической учетной записи пользователя для этой задачи. Для большей эффективности рассмотрите возможность установки этих задач в область пула. Дополнительные сведения см. В разделе Запуск задачи от имени автоматического пользователя с областью действия пула.

Узлы

Вычислительный узел - это виртуальная машина (ВМ) Azure или виртуальная машина облачной службы, выделенная для обработки части рабочей нагрузки вашего приложения. Следуйте этим рекомендациям при работе с узлами.

Идемпотентные стартовые задачи

Как и в случае с другими задачами, задача запуска узла должна быть идемпотентной, поскольку она будет запускаться повторно каждый раз при загрузке узла. Идемпотентная задача - это просто задача, которая дает стабильный результат при многократном выполнении.

Изолированные узлы

Рассмотрите возможность использования виртуальных машин изолированного размера для рабочих нагрузок, соответствующих нормативным или нормативным требованиям. Поддерживаемые изолированные размеры в режиме конфигурации виртуальной машины включают Standard_E80ids_v4 , Standard_M128ms , Standard_F72s_v2 , Standard_G5 , Standard_GS5 и Standard_E64i_v3 .Дополнительные сведения о размерах изолированных виртуальных машин см. В разделе Изоляция виртуальных машин в Azure.

Управление долгосрочными службами через интерфейс служб операционной системы

Иногда необходимо запустить другой агент вместе с агентом пакетной обработки на узле. Например, вы можете собрать данные с узла и сообщить об этом. Мы рекомендуем развертывать эти агенты как службы ОС, такие как служба Windows или служба Linux systemd .

При запуске этих служб они не должны блокировать файлы в каталогах, управляемых пакетным управлением, на узле, поскольку в противном случае пакетный режим не сможет удалить эти каталоги из-за блокировок файлов.Например, при установке службы Windows в стартовой задаче вместо запуска службы непосредственно из рабочего каталога стартовой задачи скопируйте файлы в другое место (или, если файлы существуют, просто пропустите копирование). Затем установите службу из этого места. Когда Batch повторно запускает вашу стартовую задачу, он удаляет рабочий каталог стартовой задачи и создает его заново. Это работает, потому что у службы есть блокировки файлов в другом каталоге, а не в рабочем каталоге задачи запуска.

Избегайте создания пересечений каталогов в Windows

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

Сбор журналов пакетного агента

Если вы заметили проблему, связанную с поведением узла или задачами, выполняемыми на узле, соберите журналы пакетного агента, прежде чем освобождать соответствующие узлы. Журналы пакетного агента можно собирать с помощью API-интерфейса загрузки журналов пакетной службы. Эти журналы могут быть предоставлены как часть заявки в службу поддержки Microsoft и помогут в устранении неполадок и их разрешении.

Управление обновлениями ОС

Для режима подписки пользователя Пакетные учетные записи автоматическое обновление ОС может прервать выполнение задачи, особенно если задачи выполняются долго.Построение идемпотентных задач может помочь уменьшить количество ошибок, вызванных этими прерываниями. Мы также рекомендуем планировать обновления образа ОС на периоды, когда выполнение задач не ожидается.

Для пулов Windows enableAutomaticUpdates по умолчанию имеет значение true . Рекомендуется разрешить автоматические обновления, но вы можете установить для этого значения false , если вам нужно убедиться, что обновление ОС не произойдет неожиданно.

Безопасность изоляции

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

Возможности подключения

Ознакомьтесь со следующим руководством, касающимся подключения в пакетных решениях.

Группы безопасности сети (NSG) и определяемые пользователем маршруты (UDR)

При инициализации пулов пакетной обработки в виртуальной сети убедитесь, что вы строго следуете рекомендациям, касающимся использования тега службы BatchNodeManagement , портов, протоколов и направления правила.Настоятельно рекомендуется использовать служебный тег вместо использования IP-адресов пакетной службы. Это связано с тем, что IP-адреса могут меняться со временем. Прямое использование IP-адресов пакетной службы может привести к нестабильности, прерываниям или сбоям в работе ваших пулов пакетной службы.

Для маршрутов, определяемых пользователем (UDR), убедитесь, что у вас есть процесс для периодического обновления IP-адресов пакетной службы в таблице маршрутов, поскольку эти адреса меняются с течением времени. Чтобы узнать, как получить список IP-адресов пакетной службы, см. Локальные теги служб.IP-адреса пакетной службы будут связаны с тегом службы BatchNodeManagement (или региональным вариантом, который соответствует региону вашей учетной записи пакетной службы).

В честь DNS

Убедитесь, что ваши системы учитывают время жизни (TTL) DNS для URL-адреса службы учетной записи пакетной службы. Кроме того, убедитесь, что ваши клиенты пакетной службы и другие механизмы подключения к пакетной службе не полагаются на IP-адреса (или создайте пул со статическими общедоступными IP-адресами, как описано ниже).

Если ваши запросы получают HTTP-ответы уровня 5xx и в ответе есть заголовок «Connection: close», ваш клиент пакетной службы должен выполнить рекомендацию, закрыв существующее соединение, повторно разрешив DNS для URL-адреса службы пакетной учетной записи и попытавшись следующие запросы о новом подключении.

Автоматически запрашивает повторную попытку

Убедитесь, что у ваших клиентов пакетной службы есть соответствующие политики повторных попыток для автоматического повторения ваших запросов, даже во время нормальной работы, а не исключительно во время каких-либо периодов обслуживания.Эти политики повторных попыток должны охватывать интервал не менее 5 минут. Возможности автоматического повтора предоставляются различными пакетами SDK для пакетной обработки, такими как класс .NET RetryPolicyProvider.

Статические общедоступные IP-адреса

Обычно доступ к виртуальным машинам в пуле пакетной обработки осуществляется через общедоступные IP-адреса, которые могут изменяться в течение срока службы пула. Это может затруднить взаимодействие с базой данных или другой внешней службой, которая ограничивает доступ к определенным IP-адресам. Чтобы гарантировать, что общедоступные IP-адреса в вашем пуле не изменятся неожиданно, вы можете создать пул, используя набор статических общедоступных IP-адресов, которые вы контролируете.Дополнительные сведения см. В разделе Создание пула пакетной службы Azure с указанными общедоступными IP-адресами.

Тестирование подключения с конфигурацией облачных служб

Вы не можете использовать обычный протокол «ping» / ICMP с облачными службами, потому что протокол ICMP не разрешен через балансировщик нагрузки Azure. Дополнительные сведения см. В разделе Подключение и сеть для облачных служб Azure.

Базовые зависимости пакетного узла

При разработке пакетных решений учитывайте следующие зависимости и ограничения.

Ресурсы, созданные системой

Пакетная служба Azure создает и управляет набором пользователей и групп на виртуальной машине, которые нельзя изменять. Они следующие:

Окна:

  • Пользователь с именем PoolNonAdmin
  • Группа пользователей с именем WATaskCommon

Linux:

Очистка файлов

Пакетная служба активно пытается очистить рабочий каталог, в котором выполняются задачи, по истечении срока их хранения. Вы обязаны очистить любые файлы, написанные вне этого каталога, чтобы избежать переполнения дискового пространства.

Автоматическая очистка рабочего каталога будет заблокирована, если вы запустите службу в Windows из рабочего каталога startTask, так как папка все еще используется. Это приведет к снижению производительности. Чтобы исправить это, измените каталог для этой службы на отдельный каталог, которым не управляет пакетная служба.

Следующие шаги

Рабочий процесс и ресурсы пакетной службы - Пакетная служба Azure

  • 2 минуты на чтение

В этой статье

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

Независимо от того, разрабатываете ли вы распределенное вычислительное приложение или службу, которая выдает прямые вызовы REST API, или используете другой пакет SDK для пакетной обработки, вы будете использовать многие ресурсы и функции, обсуждаемые здесь.

Базовый рабочий процесс

Следующий высокоуровневый рабочий процесс типичен почти для всех приложений и служб, использующих пакетную службу для обработки параллельных рабочих нагрузок:

  1. Загрузите файлов данных , которые вы хотите обработать, в учетную запись хранилища Azure.Пакетная служба включает встроенную поддержку доступа к хранилищу BLOB-объектов Azure, и ваши задачи могут загружать эти файлы на вычислительные узлы при выполнении задач.
  2. Загрузите файлы приложения , которые будут запускать ваши задачи. Эти файлы могут быть двоичными или скриптами и их зависимостями, и они выполняются задачами в ваших заданиях. Ваши задачи могут загружать эти файлы из вашей учетной записи хранения, или вы можете использовать пакетную функцию пакетов приложений для управления и развертывания приложений.
  3. Создайте пул вычислительных узлов.При создании пула вы указываете количество вычислительных узлов для пула, их размер и операционную систему. Когда каждая задача в вашем задании выполняется, она назначается для выполнения на одном из узлов вашего пула.
  4. Создать работу. Задание управляет набором задач. Вы связываете каждое задание с определенным пулом, в котором будут выполняться задачи этого задания.
  5. Добавить задачи в задание. Каждая задача запускает приложение или сценарий, которые вы загрузили, для обработки файлов данных, загружаемых из вашей учетной записи хранения.По завершении каждой задачи он может отправлять свои выходные данные в хранилище Azure.
  6. Отслеживание выполнения задания и получение выходных данных задачи из службы хранилища Azure.

Примечание

Для использования пакетной службы необходима учетная запись пакетной службы. Большинство пакетных решений также используют связанную учетную запись хранилища Azure для хранения и извлечения файлов.

Ресурсы пакетного обслуживания

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

Следующие шаги

  • Узнайте о пакетных API и инструментах, доступных для создания пакетных решений.
  • Изучите основы разработки приложения с поддержкой пакетной обработки с использованием клиентской библиотеки пакетной службы .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *