Vue d’ensemble de la vue Formulaire (uiFormDefinition)

Une vue de formulaire est une description JSON d’une expérience de création du portail Azure. Le portail Azure affiche le formulaire au moment de l'exécution à partir du json ; il n'y a pas de code client à écrire. Les vues de formulaire utilisent le format uiFormDefinition.json et sont utilisées par les formulaires du portail des spécifications de modèle. Applications managées Azure utilisent le format distinct createUiDefinition.json.

Le fichier minimal ressemble à ceci :

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

Un affichage Formulaire a toujours :

Champ Obligatoire Description
$schema Recommandé Épinglez le schéma 2021-09-09/uiFormDefinition.schema.json pour IntelliSense.
view.kind Yes Doit être "Form".
view.properties.title Yes Titre de la page affiché au-dessus du formulaire.
view.properties.steps Yes Une ou plusieurs étapes (onglets). Consultez les étapes.
view.outputs Oui (lors du déploiement) Le contexte de déploiement — à savoir l’abonnement, le groupe de ressources, le groupe d’administration ou le locataire sur lequel le déploiement est effectué, ainsi que les valeurs des paramètres du modèle Azure Resource Manager. Voir Sorties.

Steps

steps est un tableau ordonné. Chaque étape s’affiche sous la forme d’un onglet. L’utilisateur passe d’une étape à l’autre avec Suivant et Précédent.

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

Chaque étape a :

Champ Obligatoire Description
name Yes Numéro d'identification de l'étape. Faites-y référence dans les expressions sous la forme steps('<name>').
label Yes Titre de l’onglet.
description Non Description facultative affichée sous le titre de l’onglet.
elements Yes Tableau de contrôles de formulaire. Consultez les éléments de la vue formulaire.

Regroupez les champs associés avec Microsoft.Common.Section plutôt que de surcharger une étape. Les sections ne peuvent pas être imbriquées.

Sorties (contexte de déploiement)

Lorsqu’un affichage Formulaire est utilisé pour déployer un modèle Azure Resource Manager (cas courant), view.outputs correspond au contexte de déploiement. Le portail l’utilise pour déterminer déployer et quelles valeurs de paramètre passer au modèle. Quatre kind valeurs sont prises en charge :

kind Champs obligatoires Utilisé quand
ResourceGroup resourceGroupId, location, parameters La plupart des ressources. Déploie dans un groupe de ressources.
Subscription subscriptionId, location, parameters Le $schema du modèle est subscriptionDeploymentTemplate.json.
ManagementGroup managementGroupId, location, parameters Le $schema du modèle est managementGroupDeploymentTemplate.json.
Tenant location, parameters Le $schema du modèle est tenantDeploymentTemplate.json.

parameters Les clés correspondent à l’identique aux paramètres du modèle ARM. Les valeurs sont généralement des expressions qui lisent la sortie de l’étape.

Pour les déploiements de groupes de ressources, le schéma public prend en charge Microsoft.Common.ResourceScope, et le didacticiel Créer des formulaires de portail pour les spécifications de modèle l’utilise pour le flux de sélection commun de l’abonnement, du groupe de ressources et de l’emplacement. L’exemple ci-dessous suppose que l’étape basics contient un Microsoft.Common.ResourceScope élément nommé resourceScope. Il s’agit également de la valeur par défaut la plus sûre lorsque le formulaire inclut des contrôles (par exemple Microsoft.Compute.SizeSelector) qui déduitnt leur abonnement et leur emplacement à partir de l’étendue de déploiement.

"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 formulaire utilise des éléments autonomes Microsoft.Common.SubscriptionSelector, Microsoft.Common.ResourceGroupSelector et Microsoft.Common.LocationSelector au lieu de Microsoft.Common.ResourceScope, assurez-vous que les contrôles sensibles à l’étendue sont explicitement liés à l’abonnement et à l’emplacement sélectionnés via leur propriété scope.

Expressions

Les chaînes du formulaire "[ ... ]" sont évaluées en tant qu’expressions. Les fonctions constituent le même ensemble que celui documenté pour les fonctions CreateUiDefinition :

Function Returns
steps('<stepName>') Objet contenant chaque sortie de contrôle à l’étape nommée.
basics('<elementName>') Résultat d’un élément dans l’étape héritée Notions de base (CreateUiDefinition uniquement).
equals, not, and, or, if, coalesce, empty Assistants logiques
concat, split, substring, indexOf, toLower, toUpper, last, first Helpers de chaîne et de tableau.
length, min, max, add, sub, mul, div Helpers numériques.
subscription(), resourceGroup(), location() Étendue sélectionnée.

Dans un contrôle, visible, defaultValue et la plupart des champs constraints.* acceptent soit une valeur littérale, soit une expression.

Localization

Les chaînes visibles par l’utilisateur peuvent être intégrées directement sous forme de littéraux (comme dans les exemples ci-dessus).

Outils de création

  • Le bac à sable de la vue Formulaire peut générer un formulaire par défaut à partir d’un modèle ARM et prévisualiser le résultat. Consultez Créer des formulaires de portail pour les spécifications de modèle pour un guide pas à pas complet.

  • Le schéma est publié à l’adresse https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json. Pour activer IntelliSense dans Visual Studio Code, ajoutez l’URL du schéma comme valeur de niveau $schema supérieur dans le fichier de formulaire :

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

    Si Visual Studio Code vous invite à approuver le domaine de schéma, choisissez Configurer les domaines approuvés et ajouter https://schema.management.azure.com. Vous pouvez également l’ajouter ultérieurement à partir de la palette de commandes avec préférences : configurer des domaines approuvés.

Étapes suivantes