Descripción general de la vista de formulario (uiFormDefinition)

Una vista de formulario es la descripción JSON de una experiencia de creación del portal de Azure. El portal de Azure representa el formulario en tiempo de ejecución desde json; no hay ningún código de cliente que escribir. Las vistas de formulario usan el formato uiFormDefinition.json y son utilizadas por los formularios del portal de especificaciones de plantillas. Azure Managed Applications usan el formato independiente createUiDefinition.json.

El archivo mínimo tiene este aspecto:

{
  "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#",
  "view": {
    "kind": "Form",
    "properties": {
      "title": "Create my resource",
      "steps": []
    },
    "outputs": {
      "kind": "ResourceGroup",
      "resourceGroupId": "",
      "location": "",
      "parameters": {}
    }
  }
}

Una vista de formulario siempre tiene:

Campo Obligatorio Description
$schema Recomendado Ancle el esquema 2021-09-09/uiFormDefinition.schema.json para IntelliSense.
view.kind Yes Debe ser "Form".
view.properties.title Yes Título de la página que se muestra encima del formulario.
view.properties.steps Yes Uno o varios pasos (pestañas). Consulte Pasos.
view.outputs Sí (al implementar) Contexto de implementación: qué suscripción, grupo de recursos, grupo de administración o inquilino tiene como destino la implementación y los valores de parámetro de plantilla de Azure Resource Manager. Consulte Salidas.

Steps

steps es una matriz ordenada. Cada paso se representa como una pestaña. El usuario se mueve entre los pasos con Siguiente y Anterior.

"steps": [
  {
    "name": "basics",
    "label": "Basics",
    "description": "Provide the basic settings for the resource.",
    "elements": [
      {
        "name": "name",
        "type": "Microsoft.Common.TextBox",
        "label": "Resource name",
        "toolTip": "Provide a unique name.",
        "constraints": {
          "required": true,
          "regex": "^[a-z0-9]{3,24}$",
          "validationMessage": "3-24 lowercase letters or digits."
        }
      }
    ]
  }
]

Cada paso tiene:

Campo Obligatorio Description
name Yes Id. del paso. Haga referencia a ella desde expresiones como steps('<name>').
label Yes Título de la pestaña.
description No Descripción opcional representada en el título de la pestaña.
elements Yes Matriz de controles de formulario. Consulte Elementos de la vista de formulario.

Agrupa los campos relacionados con Microsoft.Common.Section en lugar de sobrecargar un paso. Las secciones no se pueden anidar.

Salidas (el contexto de implementación)

Cuando se usa una vista Formulario para implementar una plantilla de Azure Resource Manager (el caso común), view.outputs es el contexto de implementación. El portal lo usa para averiguar dónde implementar y qué valores de parámetro se van a pasar a la plantilla. Se admiten cuatro kind valores:

kind Campos obligatorios Se usa cuando
ResourceGroup resourceGroupId, , location, parameters La mayoría de los recursos. Se implementa en un grupo de recursos.
Subscription subscriptionId, , location, parameters El $schema de la plantilla es subscriptionDeploymentTemplate.json.
ManagementGroup managementGroupId, , location, parameters El $schema de la plantilla es managementGroupDeploymentTemplate.json.
Tenant location, parameters El $schema de la plantilla es tenantDeploymentTemplate.json.

parameters las claves se corresponden 1:1 con los parámetros de la plantilla de ARM. Los valores suelen ser expresiones que leen la salida de un paso.

En el caso de las implementaciones de grupos de recursos, el esquema público admite Microsoft.Common.ResourceScopey el tutorial Creación de formularios del portal para las especificaciones de plantilla lo usa para el flujo de selección de suscripción, grupo de recursos y ubicación comunes. En el ejemplo siguiente se supone que el basics paso contiene un Microsoft.Common.ResourceScope elemento denominado resourceScope. Este es también el valor predeterminado más seguro cuando el formulario incluye controles (como Microsoft.Compute.SizeSelector) que deducen su suscripción y ubicación desde el ámbito de implementación.

"outputs": {
  "kind": "ResourceGroup",
  "resourceGroupId": "[steps('basics').resourceScope.resourceGroup.id]",
  "location":        "[steps('basics').resourceScope.location.name]",
  "parameters": {
    "keyVaultName": "[steps('basics').name]",
    "location":     "[steps('basics').resourceScope.location.name]",
    "sku":          "[steps('keyvault').sku]"
  }
}

Si un formulario usa elementos independientes Microsoft.Common.SubscriptionSelector, Microsoft.Common.ResourceGroupSelector y Microsoft.Common.LocationSelector en lugar de Microsoft.Common.ResourceScope, asegúrese de que los controles con reconocimiento de ámbito estén vinculados explícitamente a la suscripción y la ubicación seleccionadas a través de su propiedad scope.

Expressions

Las cadenas del formulario "[ ... ]" se evalúan como expresiones. Las funciones son el mismo conjunto documentado para las funciones CreateUiDefinition:

Function Devoluciones
steps('<stepName>') Objeto que contiene todas las salidas de control en el paso con nombre.
basics('<elementName>') Salida de un elemento del paso heredado Aspectos básicos (solo para CreateUiDefinition).
equals, not, and, or, if, , coalesceempty Asistentes lógicos.
concat, split, substring, indexOf, toLower, toUpper, , lastfirst Asistentes de cadena y matriz.
length, min, max, add, sub, , muldiv Asistentes numéricos.
subscription(), , resourceGroup(), location() Ámbito seleccionado.

Dentro de un control, visible, defaultValue y la mayoría de los campos constraints.* aceptan un valor literal o una expresión.

Localization

Las cadenas orientadas al usuario se pueden insertar como literales (como en los ejemplos anteriores).

Herramientas de autoría

  • El entorno de pruebas de la vista Formulario puede generar un formulario predeterminado a partir de una plantilla ARM y previsualizar el resultado. Consulte Creación de formularios de portal para las especificaciones de plantilla para ver un tutorial completo.

  • El esquema se publica en https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json. Para habilitar IntelliSense en Visual Studio Code, agregue la dirección URL del esquema como valor de nivel $schema superior en el archivo de formulario:

    {
      "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#",
      "view": {
        "kind": "Form"
      }
    }
    

    Si Visual Studio Code le pide que confíe en el dominio de esquema, elija Configurar dominios de confianza y agregue https://schema.management.azure.com. También puede agregarlo más adelante desde la paleta de comandos con Preferencias: Configurar dominios de confianza.

Pasos siguientes