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

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

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

Входные переменные

Определение входных параметров для облачного шаблона

Добавьте раздел inputs в код шаблона, где задаются выбираемые значения.

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

inputs:
  wp-size:
    type: string
    enum:
      - small
      - medium
    description: Size of Nodes
    title: Node Size
  wp-image:
    type: string
    enum:
      - coreos
      - ubuntu
    title: Select Image/OS
  wp-count:
    type: integer
    default: 2
    maximum: 5
    minimum: 2
    title: Wordpress Cluster Size
    description: Wordpress Cluster Size (Number of nodes)

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

Вкладка «Входные данные»

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

Затем в разделе resources создайте ссылку на входной параметр, используя синтаксис ${input.свойство-имя}.

Если имя свойства содержит пробелы, вместо использования нотации с точкой используйте квадратные скобки и двойные кавычки: ${input["имя свойства"]}

Важно!: Слово input может использоваться в коде облачных шаблонов только для указания входных параметров.
resources:
  WebTier:
    type: Cloud.Machine
    properties:
      name: wordpress
      flavor: '${input.wp-size}'
      image: '${input.wp-image}'
      count: '${input.wp-count}'

Список входных свойств

Свойство Описание
const Используется с oneOf. Реальное значение, связанное с понятным заголовком.
default Предварительно заполненное значение для входных данных.

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

description Текст справки по входным данным для пользователя.
encrypted Указывает, следует ли шифровать вводимые пользователем данные (true или false).

К данным, которые обычно шифруются, относятся пароли.

enum Раскрывающийся список разрешенных значений.

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

enum:
      - value 1
      - value 2
format Задает ожидаемый формат входных данных. Например, формат (25/04/19) поддерживает ввод даты и времени.

Позволяет использовать управляющий элемент выбора даты в настраиваемых формах vRealize Automation Service Broker.

items Объявляет элементы в массиве. Поддерживаемые значения: число, целое число, строка, логическое значение или объект.
maxItems Максимальное количество выбираемых элементов в массиве.
maxLength Максимальное разрешенное количество символов в строке.

Например, чтобы ограничить размер поля 25 символами, введите maxLength: 25.

maximum Наибольшее допустимое значение числа или целого числа.
minItems Минимальное количество выбираемых элементов в массиве.
minLength Минимальное разрешенное количество символов в строке.
minimum Наименьшее допустимое значение для числа или целого числа.
oneOf Позволяет отображать понятное имя (title) вместо менее понятного значения (const) в форме для ввода пользовательских данных. При задании значения по умолчанию следует указывать const, а не title.

Допустимо для использования с данными следующих типов: строка, целое число и число.

pattern Допустимые символы для ввода строковых данных в виде регулярного выражения.

Например, '[a-z]+' или '[a-z0-9A-Z@#$]+'.

properties Объявляет блок свойств key:value для объектов.
readOnly Используется только для пометки формы.
title Используется с oneOf. Понятное имя для значения const. Этот заголовок отображается в форме для ввода пользовательских данных во время развертывания.
type Тип данных: число, целое число, строка, логическое значение или объект.

writeOnly Заменяет введенные в форму символы звездочками. Нельзя использовать в сочетании с enum. Отображается в настраиваемых формах vRealize Automation Service Broker как поле для ввода пароля.

Дополнительные примеры

Строка с перечислением

  image:
    type: string
    title: Operating System
    description: The operating system version to use.
    enum:
      - ubuntu 16.04
      - ubuntu 18.04
    default: ubuntu 16.04

  shell:
    type: string
    title: Default shell
    Description: The default shell that will be configured for the created user.
    enum:
      - /bin/bash
      - /bin/sh

Целое число с минимальным и максимальным значениями

  count:
    type: integer
    title: Machine Count
    description: The number of machines that you want to deploy.
    maximum: 5
    minimum: 1
    default: 1

Массив объектов

  tags:
    type: array
    title: Tags
    description: Tags that you want applied to the machines.
    items:
      type: object
      properties:
        key:
          type: string
          title: Key
        value:
          type: string
          title: Value

Строка с понятными именами

  platform:
    type: string
    oneOf:
      - title: AWS
        const: platform:aws
      - title: Azure
        const: platform:azure
      - title: vSphere
        const: platform:vsphere
    default: platform:aws

Строка с проверкой шаблона

  username:
    type: string
    title: Username
    description: The name for the user that will be created when the machine is provisioned.
    pattern: ^[a-zA-Z]+$

Строка как пароль

  password:
    type: string
    title: Password
    description: The initial password that will be required to logon to the machine. Configured to reset on first login.
    encrypted: true
    writeOnly: true

Строка как текстовая область

  ssh_public_key:
    type: string
    title: SSH public key
    maxLength: 256

Логическое значение

  public_ip:
    type: boolean
    title: Assign public IP address
    description: Choose whether your machine should be internet facing.
    default: false