Přehled zobrazení formuláře (uiFormDefinition)

Zobrazení formuláře je popis prostředí pro vytváření v portálu Azure ve formátu JSON. Portál Azure za běhu vygeneruje formulář z formátu JSON; není potřeba psát žádný klientský kód. Zobrazení formuláře používají formát uiFormDefinition.json a používají je formuláře portálu pro specifikace šablon. Azure Managed Applications používají samostatný formát createUiDefinition.json.

Minimální soubor vypadá takto:

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

Formulářové zobrazení má vždy:

Pole Povinné Description
$schema Doporučený Připněte schéma 2021-09-09/uiFormDefinition.schema.json pro IntelliSense.
view.kind Ano Musí být "Form".
view.properties.title Ano Název stránky zobrazený nad formulářem.
view.properties.steps Ano Jeden či více kroků (karet). Viz kroky.
view.outputs Ano (při nasazování) Kontext nasazení – na které předplatné, skupinu prostředků, skupinu pro správu nebo tenanta nasazení cílí, a hodnoty parametrů šablony Azure Resource Manageru. Viz výstupy.

Kroky

steps je seřazené pole. Každý krok se vykreslí jako karta. Uživatel se přesune mezi kroky s funkcí Další a Předchozí.

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

Každý krok má:

Pole Povinné Description
name Ano ID kroku. Odkazujte na něj ve výrazech jako steps('<name>').
label Ano Název tabulátoru
description No Volitelný popis zobrazený pod názvem karty
elements Ano Pole ovládacích prvků formuláře Viz prvky zobrazení formuláře.

Seskupte související pole pomocí Microsoft.Common.Section namísto toho, aby byl jeden krok příliš zahlcen. Oddíly nelze vnořit.

Výstupy (kontext nasazení)

Pokud se k nasazení šablony Azure Resource Manager (běžný případ) používá formulářové zobrazení, view.outputs je kontext nasazení. Portál ho používá k určení , kde nasadit a jaké hodnoty parametrů předat šabloně. Podporují se čtyři kind hodnoty:

kind Povinná pole Používá se, když
ResourceGroup resourceGroupId, location, parameters Většina zdrojů. Nasadí se do skupiny prostředků.
Subscription subscriptionId, location, parameters Šablony $schema je subscriptionDeploymentTemplate.json.
ManagementGroup managementGroupId, location, parameters Šablony $schema je managementGroupDeploymentTemplate.json.
Tenant location, parameters Šablony $schema je tenantDeploymentTemplate.json.

parameters klíče odpovídají 1:1 parametrům šablony ARM. Hodnoty jsou obvykle výrazy, které odkazují na výstup kroku.

Pro nasazení do skupin prostředků veřejné schéma podporuje Microsoft.Common.ResourceScope a kurz Vytvoření formulářů portálu pro specifikace šablon ho používá pro běžný postup výběru předplatného, skupiny prostředků a umístění. Následující příklad předpokládá, že basics krok obsahuje Microsoft.Common.ResourceScope prvek s názvem resourceScope. Toto je také nejbezpečnější výchozí nastavení, pokud formulář obsahuje ovládací prvky (například Microsoft.Compute.SizeSelector), které odvozují své předplatné a umístění z rozsahu nasazení.

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

Pokud formulář používá samostatné prvky Microsoft.Common.SubscriptionSelector, Microsoft.Common.ResourceGroupSelector a Microsoft.Common.LocationSelector místo Microsoft.Common.ResourceScope, ujistěte se, že ovládací prvky závislé na oboru jsou explicitně svázány s vybraným předplatným a oblastí pomocí vlastnosti scope.

Expressions

Řetězce formuláře "[ ... ]" se vyhodnocují jako výrazy. Funkce tvoří stejnou sadu, jaká je zdokumentována pro funkce CreateUiDefinition:

Function Returns
steps('<stepName>') Objekt držící každý výstup ovládacího prvku v pojmenovaném kroku
basics('<elementName>') Výstup prvku v zastaralém kroku Basics (pouze CreateUiDefinition).
equals, not, and, or, if, , coalesceempty Pomocné logické funkce.
concat, split, substring, , indexOftoLower, toUpper, , lastfirst Pomocné funkce pro řetězce a pole
length, min, max, add, sub, , muldiv Numerické pomocné funkce.
subscription(), resourceGroup(), location() Vybraný obor.

V rámci ovládacího prvku pole visible, defaultValue a většina polí constraints.* přijímají buď literál, nebo výraz.

Localization

Uživatelem přístupné řetězce lze vyčíst jako literály (jako v příkladech výše).

Nástroje pro vytváření obsahu

  • Sandbox zobrazení formulářů může vygenerovat výchozí formulář ze šablony ARM a zobrazit náhled výsledného formuláře. Podrobné pokyny najdete v tématu Vytvoření formulářů portálu pro specifikace šablon .

  • Schéma je publikováno na adrese https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json. Pokud chcete povolit IntelliSense v Visual Studio Code, přidejte adresu URL schématu jako hodnotu nejvyšší úrovně $schema do souboru formuláře:

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

    Pokud Visual Studio Code zobrazí výzvu k důvěryhodnosti domény schématu, zvolte Konfigurovat důvěryhodné domény a přidejte https://schema.management.azure.com. Můžete ho také přidat později z palety příkazů s předvolbami: Konfigurace důvěryhodných domén.

Další kroky