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

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

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

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

Чтобы применить привязки в виде знака доллара к типам свойств, предоставляемым облачным шаблоном Cloud Assembly, требуются соответствующие разрешения.

  • Необходимо иметь ту же роль, что и пользователь, создавший развертывание облачного шаблона в Cloud Assembly.
  • Моделировать и запускать конвейер могут разные пользователи, роли которых могут отличаться.
  • Если разработчик с ролью исполнителя в Code Stream моделирует конвейер, у этого разработчика должна быть такая же роль в Cloud Assembly, как у пользователя, развернувшего облачный шаблон. Например, это может быть роль администратора Cloud Assembly.
  • Конвейер и развертывание могут быть созданы только лицом, моделирующим конвейер, так как у этого лица есть соответствующее разрешение.

Использование маркера API-интерфейса в задаче облачного шаблона

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

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

Начните с облачного шаблона, для которого определены свойства входных переменных, например integerVar, stringVar, flavorVar, BooleanVar, objectVar и arrayVar. Определения свойств образа можно найти в разделе resources. Свойства в коде облачного шаблона могут выглядеть следующим образом.

formatVersion: 1
inputs:
  integerVar:
    type: integer
    encrypted: false
    default: 1
  stringVar:
    type: string
    encrypted: false
    default: bkix
  flavorVar:
    type: string
    encrypted: false
    default: medium
  BooleanVar:
    type: boolean
    encrypted: false
    default: true
  objectVar:
    type: object
    encrypted: false
    default:
      bkix2: bkix2
  arrayVar:
    type: array
    encrypted: false
    default:
      - '1'
      - '2'
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: ubuntu
      flavor: micro
      count: '${input.integerVar}'

Для image и flavor можно использовать переменные со знаком доллара ($). Например:

resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      input: '${input.image}'
      flavor: '${input.flavor}'

Чтобы использовать облачный шаблон в конвейере Code Stream и добавить к нему привязки в виде знака доллара, выполните следующие действия.

  1. В Code Stream выберите Конвейеры > Пустой холст.
  2. Добавьте в конвейер задачу Облачный шаблон.
  3. В задаче «Облачный шаблон» в качестве источника облачного шаблона выберите Облачные шаблоны Cloud Assembly, введите имя облачного шаблона и выберите его версию.
  4. Обратите внимание, что можно ввести маркер API-интерфейса в качестве источника учетных данных для конвейера. Чтобы создать переменную, которая шифрует маркер API-интерфейса в задаче облачного шаблона, щелкните Создать переменную.
  5. Обратите внимание на значения параметров в таблице Параметры и значения. Значение по умолчанию для параметра flavor — small, для параметра image — ubuntu.
  6. Предположим, требуется изменить облачный шаблон в Cloud Assembly. Для этого можно выполнить следующие действия.
    1. а.Настройте конфигурацию так, чтобы в ней использовалось свойство типа массив. В Cloud Assembly разрешается указывать значения для конфигурации через запятую, если выбран тип array.
    2. б.Щелкните Развернуть.
    3. в.На странице «Типы развертывания» введите имя развертывания и выберите версию облачного шаблона.
    4. г.На странице «Входные данные развертывания» можно определить одно или несколько значений для Flavor.
    5. д.Следует отметить, что входные данные развертывания включают в себя все переменные, определенные в коде облачного шаблона, и отображаются так, как они заданы в коде. Например: Integer Var, String Var, Flavor Var, Boolean Var, Object Var и Array Var. String Var и Flavor Var являются строковыми значениями, а Boolean Var — флажком.
    6. е.Щелкните Развернуть.
  7. В Code Stream выберите новую версию облачного шаблона и введите значения в таблице Параметры и значения. Облачные шаблоны поддерживают следующие типы параметров, которые позволяют создавать привязки Code Stream, используя переменные в виде знака доллара. Имеются незначительные различия между пользовательским интерфейсом задачи облачного шаблона Code Stream и пользовательским интерфейсом облачного шаблона Cloud Assembly. В зависимости от кодировки облачного шаблона в Cloud Assembly ввод значений в задаче облачного шаблона в Code Stream может быть запрещен.
    1. а.Для flavorVar: если тип облачного шаблона определен как строка или массив, введите строку или массив значений, разделенных запятыми. Пример массива: test, test.
    2. б.Для BooleanVar: в раскрывающемся меню выберите значение истина или ложь. Или, чтобы использовать привязку переменных, введите знак $ и выберите привязку переменных из списка.При выборе привязки переменной путем ввода знака доллара в текстовой области BooleanVar отображаются логические переменные, доступные для выбора.
    3. в.Для objectVar: укажите значение, используя фигурные скобки и кавычки, в следующем формате: {"bkix":"bkix":}.
    4. г.Переменная objectVar будет передаваться в облачный шаблон, и ее можно будет использовать различными способами в зависимости от облачного шаблона. Это позволяет использовать для объекта JSON строковый формат, а также добавлять пары «ключ-значение», разделенные запятыми, в таблицу «ключ-значение». Для объекта JSON можно ввести обычный текст или пару «ключ-значение» как обычный формат преобразования в строку для JSON.
    5. д.Для arrayVar: введите входное значение в виде массива с разделителями-запятыми в следующем формате: ["1", "2"].
  8. В конвейере можно привязать входной параметр к массиву.
    1. а.Перейдите на вкладку Входные данные.
    2. б.Укажите имя входных данных. Например, arrayInput.
    3. в.В таблице Параметры и значения выберите arrayVar и введите ${input.arrayInput}.
    4. г.После сохранения и включения конвейера, при его запуске будет необходимо указывать входное значение массива. Например, введите ["1", "2"] и нажмите кнопку Запустить.

Мы рассмотрели, как использовать привязку переменных со знаком доллара ($) в облачном шаблоне в задаче облачного шаблона конвейера Code Stream.

Передача параметра в конвейер при его выполнении

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

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

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

  1. В конвейере перейдите на вкладку Входные данные.
  2. Чтобы задать параметр, выберите для элемента Автоматическая вставка параметров значение Git.

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

  3. Щелкните Модель и выберите нужную задачу REST.
  4. На вкладке Задача в области URL-адрес введите знак $, затем выберите Входные данные и GIT_SERVER_URL.

    При добавлении переменной в виде привязки путем ввода знака доллара в текстовой области URL и выборе параметра Входные данные отобразятся доступные для выбора входные параметры Git.

    Запись выглядит следующим образом: ${input.GIT_SERVER_URL}

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

    Code Stream показывает, что задача успешно проверена.

  6. Когда конвейер выполняет задачу REST, пользователь должен ввести URL-адрес сервера Git. В противном случае задача не завершится.

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

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

Для связывания задач конвейера следует указать переменную со знаком доллара ($) во входных и выходных параметрах. Рассмотрим это на примере.

Допустим, нам требуется конвейер для вызова URL-адреса в задаче REST и вывода ответа. Чтобы вызвать URL-адрес и вывести ответ, необходимо включить в задачу REST входные и выходные параметры. Кроме того, необходим пользователь, который может подтвердить задачу, а также в разделе «Пользовательские операции» требуется указать задачу для другого пользователя, который может ее подтвердить при запуске конвейера. В этом примере показано, как использовать выражения во входных и выходных параметрах, а также как настроить в конвейере ожидание подтверждения задачи.

  1. В конвейере перейдите на вкладку Входные данные.

    На вкладке Входные данные конвейера отображаются элементы выбора входных параметров Gerrit, Git и Docker, а также параметры, доступные для каждого выбираемого элемента.

  2. В качестве значения Параметров автоматической вставки оставьте вариант Нет.
  3. Нажмите кнопку Добавить, введите имя, значение и описание параметра и нажмите кнопку ОК. Например:
    1. а.Введите имя URL-адреса.
    2. б.Введите значение: {Stage0.Task3.input.http://www.docs.vmware.com}
    3. в.Введите описание.
  4. Перейдите на вкладку Выходные данные, щелкните Добавить и введите имя и сопоставление выходного параметра.

    На вкладке Выходные данные конвейера можно добавить выходной параметр и выбрать параметр ответа REST из списка.

    1. а.Введите уникальное имя выходного параметра.
    2. б.Щелкните область Ссылка и введите $.
    3. в.Укажите сопоставление выходных данных задач, выбрав нужные параметры. Выберите Stage0, Task3, output и responseCode. Затем нажмите OK.

      На вкладке Выходные данные после добавления выходного параметра отобразится его имя и ссылка на этапе и в задаче конвейера.

  5. Сохраните конвейер.
  6. В меню Действия выберите Запустить.
  7. Щелкните Действия > Просмотреть выполняемые элементы.
  8. Выберите цикл выполнения конвейера и просмотрите заданные входные и выходные параметры.

    При выполнении конвейера отображается входной параметр «URL-адрес» с введенным URL-адресом и выходной параметр «Ответ» с выбранным кодом ответа.

  9. Чтобы утвердить конвейер, щелкните Пользовательские операции и просмотрите список подтверждений на вкладке Активные элементы. Или оставаясь в разделе «Выполняемые элементы», щелкните задачу и выберите Подтвердить.
  10. Чтобы кнопки Подтвердить и Отклонить стали активными, установите флажок рядом с выполняемым элементом.
  11. Чтобы просмотреть сведения, нажмите стрелку раскрывающегося списка.
  12. Чтобы утвердить задачу, щелкните ПОДТВЕРДИТЬ, введите причину и нажмите кнопку ОК.

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

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

    После утверждения операции пользователя конвейер продолжит работу, а в качестве состояние выполнения конвейера будет указано «ВЫПОЛНЯЕТСЯ».

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

    После завершения работы конвейера в качестве состояния будет указано «ВЫПОЛНЕНО».

Дополнительные сведения о переменных и выражениях

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

Дополнительные сведения об использовании выходных данных задачи конвейера с условной переменной привязки см. в разделе Использование привязок переменных в задаче «Условие» для запуска или остановки конвейера в Code Stream.