Übersicht über die Formularansicht (uiFormDefinition)

Eine Form view ist eine JSON-Beschreibung einer Erstellungsoberfläche im Azure-Portal. Das Azure Portal rendert das Formular zur Laufzeit aus dem JSON-Code. Es ist kein Clientcode zum Schreiben vorhanden. Formularansichten verwenden das uiFormDefinition.json Format und werden von Vorlagenspezifikationsportalformularen verwendet. Azure Managed Applications verwenden das separate createUiDefinition.json-Format.

Die Mindestdatei sieht wie folgt aus:

{
  "$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": {}
    }
  }
}

Eine Formularansicht hat immer Folgendes:

Feld Required Description
$schema Empfohlen Heften Sie das 2021-09-09/uiFormDefinition.schema.json-Schema für IntelliSense an.
view.kind Yes Muss "Form"lauten.
view.properties.title Yes Der Seitentitel, der oberhalb des Formulars angezeigt wird.
view.properties.steps Yes Ein oder mehrere Schritte (Registerkarten). Siehe Schritte.
view.outputs Ja (bei der Bereitstellung) Der Bereitstellungskontext – welche Abonnement-, Ressourcengruppe, Verwaltungsgruppe oder Mandant die Bereitstellungsziele und die Azure Resource Manager Vorlagenparameterwerte sind. Siehe "Ausgaben".

Schritte

steps ist ein sortiertes Array. Jeder Schritt wird als Registerkarte gerendert. Der Benutzer wechselt zwischen den Schritten mit "Weiter" und "Zurück".

"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."
        }
      }
    ]
  }
]

Jeder Schritt umfasst:

Feld Required Description
name Yes Schritt-ID. Verweisen Sie in Ausdrücken mit steps('<name>') darauf.
label Yes Registerkartentitel.
description No Optionale Beschreibung, die unter dem Titel der Registerkarte angezeigt wird.
elements Yes Array von Formularsteuerelementen. Siehe Formularansichtselemente.

Gruppieren Sie verwandte Felder mit Microsoft.Common.Section, statt einen Schritt zu überladen. Abschnitte können nicht geschachtelt werden.

Ausgaben (Bereitstellungskontext)

Wenn eine Formularansicht verwendet wird, um eine Azure Resource Manager-Vorlage (im allgemeinen Fall) bereitzustellen, view.outputs ist der Bereitstellungskontext. Das Portal verwendet dies, um zu bestimmen, wo bereitgestellt werden soll und welche Parameterwerte für die Vorlage übergeben werden sollen. Vier kind Werte werden unterstützt:

kind Pflichtfelder Wird verwendet, wenn
ResourceGroup resourceGroupId, locationparameters Die meisten Ressourcen. Wird in einer Ressourcengruppe bereitgestellt.
Subscription subscriptionId, locationparameters Die Vorlage $schema lautet subscriptionDeploymentTemplate.json.
ManagementGroup managementGroupId, locationparameters Die Vorlage $schema lautet managementGroupDeploymentTemplate.json.
Tenant location, parameters Die Vorlage $schema lautet tenantDeploymentTemplate.json.

parameters Schlüssel entsprechen 1:1 den ARM-Vorlagenparametern. Werte sind in der Regel Ausdrücke, die die Ausgabe eines Schritts lesen.

Bei Bereitstellungen auf Ressourcengruppenebene unterstützt das öffentliche Schema Microsoft.Common.ResourceScope, und im Tutorial Erstellen von Portalformularen für Vorlagenspezifikationen wird es für die übliche Auswahl von Abonnement, Ressourcengruppe und Standort verwendet. Im folgenden Beispiel wird davon ausgegangen, dass der basics Schritt ein Microsoft.Common.ResourceScope Element mit dem Namen resourceScopeenthält. Dies ist auch die sicherste Standardeinstellung, wenn das Formular Steuerelemente (wie z. B. Microsoft.Compute.SizeSelector) enthält, die ihr Abonnement und ihren Standort aus dem Bereitstellungsbereich ableiten.

"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]"
  }
}

Wenn ein Formular anstelle von Microsoft.Common.SubscriptionSelector eigenständige Elemente Microsoft.Common.ResourceGroupSelector, Microsoft.Common.LocationSelector und Microsoft.Common.ResourceScope verwendet, stellen Sie sicher, dass bereichsabhängige Steuerelemente über ihre Eigenschaft scope explizit an das ausgewählte Abonnement und den ausgewählten Standort gebunden sind.

Ausdrücke

Zeichenfolgen des Formulars "[ ... ]" werden als Ausdrücke ausgewertet. Die Funktionen sind derselbe Satz, der für CreateUiDefinition-Funktionen dokumentiert ist:

Funktion Rücklieferungen
steps('<stepName>') Objekt, das die Ausgaben aller Steuerelemente im angegebenen Schritt enthält.
basics('<elementName>') Ausgabe eines Elements im älteren Basics-Schritt (nur CreateUiDefinition).
equals, not, and, or, if, , coalesce, empty Logische Hilfsfunktionen.
concat, split, substring, indexOf, , toLower, toUpper, last, first String- und Array-Hilfsfunktionen.
length, min, max, add, sub, , mul, div Zahlenhilfen.
subscription(), resourceGroup()location() Ausgewählter Bereich.

In einem Steuerelement können visible, defaultValue und die meisten constraints.*-Felder entweder ein Literal oder einen Ausdruck enthalten.

Localization

Benutzerorientierte Zeichenfolgen können als Literale inlineiert werden (wie in den obigen Beispielen).

Autorenwerkzeuge

  • Der Sandkasten der Formularansicht kann ein Standardformular aus einer ARM-Vorlage generieren und das Ergebnis in der Vorschau anzeigen. Eine vollständige Schritt-für-Schritt-Anleitung finden Sie unter Portalformulare für Vorlagenspezifikationen erstellen.

  • Das Schema wird veröffentlicht unter https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json. Um IntelliSense in Visual Studio Code zu aktivieren, fügen Sie die Schema-URL als Wert der obersten Ebene $schema in der Formulardatei hinzu:

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

    Wenn Visual Studio Code Sie auffordert, der Schema-Domäne zu vertrauen, wählen Sie Vertrauenswürdige Domänen konfigurieren und fügen Sie https://schema.management.azure.com hinzu. Sie können sie auch später über die Befehlspalette mit Den Einstellungen hinzufügen: Konfigurieren vertrauenswürdiger Domänen.

Nächste Schritte