Поделиться через


определение целевого объекта

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

Определения, ссылающиеся на это определение: steps.task, steps.script, steps.powershell, steps.pwsh, steps.bash, steps.checkout, steps.download, steps.downloadBuild, steps.getPackage, steps.publish, steps.reviewApp

Варианты реализации решения

Реализация Описание
target: строка Среда, в которой выполняется этот шаг или задача.
target: container, commands, settableVariables Настройте целевой объект шага со средой и разрешенным списком команд и переменных.
Реализация Описание
target: строка Среда, в которой выполняется этот шаг или задача.
целевой объект: контейнер, команды Настройте целевой объект шага с помощью среды и списка разрешенных команд.

Комментарии

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

target: строка

Укажите целевой объект шага по имени.

target: string # Environment in which to run this step or task.

target Строка.

Доступные варианты — это слово host , предназначенное для узла агента, а также все контейнеры, определенные в конвейере.

target: container, commands, settableVariables

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

target:
  container: string # Container to target (or 'host' for host machine).
  commands: string # Set of allowed logging commands ('any' or 'restricted').
  settableVariables: none | [ string ] # Restrictions on which variables that can be set.

Свойства

container Строка.
Контейнер для целевого объекта (или "узел" для хост-компьютера).

commands Строка.
Набор разрешенных команд ведения журнала (any или restricted). любой | Ограничен.

settableVariablestarget.settableVariables.
Ограничения на то, какие переменные можно задать.

целевой объект: контейнер, команды

Настройте целевой объект шага с помощью среды и списка разрешенных команд.

target:
  container: string # Container to target (or 'host' for host machine).
  commands: string # Set of allowed logging commands ('any' or 'restricted').

Свойства

container Строка.
Контейнер для целевого объекта (или "узел" для хост-компьютера).

commands Строка.
Набор разрешенных команд ведения журнала (any или restricted). любой | Ограничен.

Комментарии

Вам не нужно настраивать все эти свойства при настройке целевого объекта шага. Если значение не указано, значение по умолчанию для container — , значение commands по умолчанию — any, а значение по умолчанию для settableVariables позволяет задать все переменные hostшагом.

Нацеливание на шаг и изоляция команд

Azure Pipelines поддерживает выполнение заданий в контейнерах или на узле агента. Ранее для всего задания был задан один из этих двух целевых объектов. Теперь отдельные шаги (задачи или скрипты) могут выполняться в выбранном целевом объекте. Шаги также могут быть нацелены на другие контейнеры, поэтому конвейер может выполнять каждый шаг в специализированном контейнере, созданном специально.

Примечание

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

Контейнеры могут выступать в качестве границ изоляции, не позволяя коду вносить непредвиденные изменения на хост-компьютере. Способы взаимодействия шагов со службами и доступа к ним из агента не влияют на изоляцию шагов в контейнере. Поэтому мы также представляем режим ограничения команд, который можно использовать с целевыми объектами шага. Если задано значение commands , restricted будут ограничены службы, которые шаг может запрашивать у агента. Он больше не сможет присоединять журналы, отправлять артефакты и некоторые другие операции.

Примеры

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

resources:
  containers:
  - container: python
    image: python:3.8
  - container: node
    image: node:13.2

jobs:
- job: example
  container: python

  steps:
  - script: echo Running in the job container

  - script: echo Running on the host
    target: host

  - script: echo Running in another container, in restricted commands mode
    target:
      container: node
      commands: restricted

См. также раздел