Como desarrollador de plantillas de nube, debe utilizar los parámetros de entrada para que los usuarios puedan seleccionar opciones personalizadas en el momento de la solicitud.

Funcionamiento de las entradas

Cuando los usuarios proporcionan entradas, ya no es necesario guardar varias copias de las plantillas que solo son apenas diferentes. Además, las entradas pueden preparar una plantilla para las operaciones del día 2. Consulte Cómo utilizar entradas de plantilla de nube en las actualizaciones del día 2 de vRealize Automation.

Las siguientes entradas muestran cómo puede crear una plantilla de nube para un servidor de base de datos MySQL, donde los usuarios pueden implementar esa plantilla en diferentes entornos de recursos de nube y aplicar diferentes capacidades y credenciales cada vez.

Variables de entrada

Agregar parámetros de entrada

Agregue una sección de inputs a su código de plantilla de nube, donde establece los valores seleccionables.

En el siguiente ejemplo, se pueden seleccionar el tamaño de la máquina, el sistema operativo y el número de servidores agrupados en clúster.

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)

Si no se siente cómodo editando código, puede hacer clic en la pestaña Entradas del editor de código e introducir la configuración allí. El siguiente ejemplo muestra algunas entradas para la base de datos MySQL que se mencionó anteriormente.

Pestaña Entradas

Referencia a parámetros de entrada

A continuación, en la sección resources, haga referencia a un parámetro de entrada mediante la sintaxis ${input.property-name}.

Si el nombre de una propiedad incluye un espacio, delimite con corchetes y comillas dobles en lugar de utilizar la notación de punto: ${input[" nombre de propiedad "]}

Importante: En el código de plantilla de nube, no se puede utilizar la palabra input excepto para indicar un parámetro de entrada.
resources:
  WebTier:
    type: Cloud.Machine
    properties:
      name: wordpress
      flavor: '${input.wp-size}'
      image: '${input.wp-image}'
      count: '${input.wp-count}'

Entradas opcionales

Por lo general, las entradas son obligatorias y están marcadas con un asterisco. Para que una entrada sea opcional, establezca un valor predeterminado vacío como se muestra.

owner:
  type: string
  minLength: 0
  maxLength: 30
  title: Owner Name
  description: Account Owner
  default: ''
Entrada opcional

Lista de propiedades de entrada

Propiedad Descripción
const Se usa con oneOf. El valor real asociado al título descriptivo.
default Valor rellenado previamente para la entrada.

El valor predeterminado debe ser del tipo correcto. No introduzca una palabra como valor predeterminado para un entero.

description Texto de ayuda del usuario para la entrada.
encrypted

Establece si se cifrará la entrada que introduce el usuario, como true o false.

Las contraseñas suelen estar cifradas.

También puede crear propiedades cifradas que se puedan reutilizar en varias plantillas de nube. Consulte Propiedades secretas de Cloud Assembly.

enum Menú desplegable de valores permitidos.

Utilice el siguiente ejemplo como guía de formato.

enum:
      - value 1
      - value 2
format Establece el formato esperado de la entrada. Por ejemplo, (25/04/19) admite fecha y hora.

Permite utilizar el selector de fecha en los formularios personalizados de Service Broker.

items Declara elementos dentro de una matriz. Admite número, entero, cadena, booleano u objeto.
maxItems Cantidad máxima de elementos que pueden seleccionarse dentro de una matriz.
maxLength Número máximo de caracteres permitido para una cadena.

Por ejemplo, introduzca maxLength: 25 para limitar un campo a 25 caracteres.

maximum Valor máximo permitido para un número o un entero.
minItems Cantidad mínima de elementos que pueden seleccionarse dentro de una matriz.
minLength Número mínimo de caracteres permitido para una cadena.
minimum Valor mínimo permitido para un número o un entero.
oneOf Permite que el formulario de entrada del usuario muestre un nombre descriptivo (title) para un valor menos descriptivo (const). Si se configura un valor predeterminado, defina const en lugar de title.

Puede utilizarse con los tipos cadena, entero y número.

pattern Caracteres permitidos para entradas de cadena, en la sintaxis de expresión regular.

Por ejemplo, '[a-z]+' o '[a-z0-9A-Z@#$]+'.

properties Declara el bloque de propiedades key:value de los objetos.
readOnly Se utiliza únicamente para proporcionar una etiqueta de formulario.
title Se usa con oneOf. El nombre descriptivo de un valor de const. La propiedad title aparece en el formulario de entrada del usuario en el momento de la implementación.
type Tipo de datos: número, entero, cadena, booleano u objeto.
Importante:

Un tipo booleano agrega una casilla de verificación en blanco al formulario de solicitud. Si deja el cuadro intacto, no hará que la entrada sea False.

Para establecer la entrada en False, los usuarios deben activar y desactivar la casilla.

writeOnly Utiliza asteriscos para ocultar las pulsaciones de teclas en el formulario. No se puede utilizar con enum. Aparece como un campo de contraseña en los formularios personalizados de Service Broker.

Ejemplos adicionales

Cadena con enumeración

  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

Entero con valor mínimo y máximo

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

Matriz de objetos

  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

Cadena con nombres descriptivos

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

Cadena con validación de patrones

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

Cadena como contraseña

  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

Cadena como área de texto

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

Booleano

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

Selector de calendario de fecha y hora

  leaseDate:
    type: string
    title: Lease Date
    format: date-time