Testovací případy pro createUiDefinition.json
Tento článek popisuje testy, které se spouštějí pomocí sady nástrojů pro testování šablon pro soubory createUiDefinition.json . Příklady zahrnují názvy testů a ukázky kódu, které testy projdou nebo selžou .
Sada nástrojů obsahuje testovací případy pro šablony Azure Resource Manageru (šablony ARM) a hlavní soubory šablon s názvem azuredeploy.json nebo maintemplate.json. Pokud adresář obsahuje soubor createUiDefinition.json , spustí se konkrétní testy pro ovládací prvky uživatelského rozhraní. Další informace o tom, jak spustit testy nebo jak spustit konkrétní test, naleznete v tématu Parametry testu.
Soubor createUiDefinition.json vytvoří vlastní ovládací prvky uživatelského rozhraní pomocí prvků a funkcí.
Ověření parametru šablony umožňuje hodnoty.
Název testu: Povolené hodnoty by měly být ve skutečnosti povolené.
Tento test zkontroluje, jestli jsou hodnoty pro každý ovládací prvek v createUiDefinition.json povolené v parametrech hlavní šablony. Parametry se mapují podle názvu mezi hlavní šablonou a souborem createUiDefinition.json .
Parametr hlavní šablony musí přijímat hodnoty z ovládacího prvku allowedValues
. Test také zkontroluje, jestli se na ovládací prvek odkazuje v části createUiDefinition.jsonoutputs
.
Tento test zkontroluje hlavní šablonu a createUiDefinition.json soubor. Příklad souboru createUiDefinition.json se zobrazí po hlavních příkladech šablony.
Následující příklad selže , protože název combo
parametru hlavní šablony neodpovídá názvu comboBox
parametru ovládacího prvku .
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"combo": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
Následující příklad selže , protože typ int
parametru hlavní šablony nepřijímá hodnotu ovládacího prvku string
. A pokud parametr hlavní šablony defaultValue
definuje, musí být platným value
v ovládacím prvku allowedValues
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "int",
"defaultValue": 4
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
Následující příklad předá , protože název parametru hlavní šablony odpovídá názvu parametru ovládacího prvku. A typ parametru šablony je s parametrem string
defaultValue
zadaným v ovládacím prvku allowedValues
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('comboBox')]"
}
}
}
Soubor createUiDefinition.json pro tento příklad:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [],
"steps": [
{
"name": "demoComboBox",
"label": "demoComboBoxLabel",
"elements": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "Value two",
"toolTip": "This is a tool tip",
"constraints": {
"allowedValues": [
{
"label": "Value one",
"description": "The value to select for option 1.",
"value": "one"
},
{
"label": "Value two",
"description": "The value to select for option 2.",
"value": "two"
}
],
"required": true
},
"visible": true
}
]
}
],
"outputs": {
"comboBox": "[steps('demoComboBox').comboBox]"
}
}
}
Výstupní ovládací prvky musí existovat.
Název testu: Ovládací prvky ve výstupech musí existovat.
Ovládací prvky použité v oddílu outputs
musí existovat v elementu jinde v createUiDefinition.json. Název, na který outputs
odkazujete, se musí shodovat s názvem použitým v basics[]
steps[]
Následující příklad selže.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "nameDoesNotMatchOutput",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Vlastnosti musí obsahovat hodnoty.
Název testu: CreateUIDefinition nesmí obsahovat prázdné hodnoty.
Vlastnosti musí obsahovat hodnoty. Požadované vlastnosti musí používat platné hodnoty. Volitelné vlastnosti, které jsou prázdné, by se měly odebrat. Test umožňuje prázdnou "basics": []
hodnotu , "steps": []
nebo defaultValue
.
Následující příklad selže , protože label
, placeholder
a toolTip
jsou prázdné.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "",
"placeholder": "",
"defaultValue": "",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Následující příklad předá , protože label
obsahují toolTip
hodnoty a placeholder
byly odebrány.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Použití platného schématu a verze
Název testu: CreateUIDefinition by měl mít schéma
Soubor createUiDefinition.json musí obsahovat $schema
vlastnost a používat platnou $schema
hodnotu a version
. Čísla verzí v $schema
a version
musí se shodovat.
Následující příklad selže.
{
"$schema": "https://schema.management.azure.com/schemas/0.9.9-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.9.9-preview"
}
Následující příklad předá , protože používá nejnovější $schema
a version
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Neskryjte potvrzení přihlašovacích údajů
Název testu: Potvrzení přihlašovacích údajů by nemělo být skryté.
Tento test zkontroluje, jestli jsou potvrzeny přihlašovací údaje pro Microsoft.Common.PasswordBox nebo Microsoft.Compute.CredentialsCombo. Vlastnost hideConfirmation
by měla být nastavena tak false
, aby byla zobrazena potvrzení.
Následující příklad selže , protože hideConfirmation
je true
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": true
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
Následující příklad předá , protože hideConfirmation
je false
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": false
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
Použití správné obslužné rutiny
Název testu: Obslužná rutina musí být správná.
Použijte Microsoft.Azure.CreateUIDef
nebo Microsoft.Compute.MultiVm
v souboru createUiDefinition.json .
Následující příklad selže.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.",
"version": "0.1.2-preview"
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Neskrývat existující prostředky
Název testu: HideExisting musí být správně zpracován.
Je-li hideExisting
nastavena false
nebo vynechána, outputs
musí obsahovat resourceGroup
a newOrExisting
. Výchozí hodnota je hideExisting
false
.
Příklady typů ovládacích prvků, které zahrnují hideExisting
Microsoft.Storage.StorageAccountSelector, Microsoft.Network.PublicIpAddressCombo nebo Microsoft.Network.VirtualNetworkCombo.
Následující příklad selže.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": false
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"resourceGroup": "[basics('storage').resourceGroup]",
"newOrExisting": "[basics('storage').newOrExisting]"
}
}
}
Použití umístění ve výstupech
Název testu: Umístění by mělo být ve výstupech.
Oddíl outputs
by měl obsahovat umístění pomocí funkce umístění .
Následující příklad selže , protože outputs
neobsahuje umístění.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Zahrnutí výstupů ovládacích prvků do parametrů šablony
Název testu: Výstupy musí být přítomné v parametrech šablony.
Test zkontroluje, že createUiDefinition.json obsahuje outputs
oddíl. Test také zkontroluje, jestli outputs
jsou definované v části hlavní šablony parameters
. Názvy se musí shodovat, protože parametry se mapují podle názvu mezi createUiDefinition.json a hlavní šablonou.
Tento test zkontroluje hlavní šablonu a createUiDefinition.json soubor. Příklad souboru createUiDefinition.json se zobrazí po hlavních příkladech šablony.
Následující příklad selže, protože hlavní šablona neobsahuje comboBox
parametr z oddílu souboru createUiDefinition.jsonoutputs
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Následující příklad předá , protože hlavní šablona obsahuje comboBox
parametr.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Soubor createUiDefinition.json pro tento příklad:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Parametry bez výchozího nastavení musí existovat ve výstupech.
Název testu: Parametry bez výchozího nastavení musí existovat v createuiDefinition.
Parametry v hlavní šabloně bez výchozí hodnoty musí existovat v oddílu souboru outputs
createUiDefinition.json.
Tento test zkontroluje hlavní šablonu a createUiDefinition.json soubor. Příklad souboru azuredeploy.json se zobrazí po příkladech ovládacího prvku.
Následující příklad selže, protože soubor outputs
createUiDefinition.json neobsahuje parametr comboBox
hlavní šablony .
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
Následující příklad předá, protože createUiDefinition.json zahrnuje v comboBox
outputs
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Soubor azuredeploy.json pro tento příklad. Parametr comboBox
nemá výchozí hodnotu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Použití zabezpečeného parametru s polem hesla
Název testu: Textová pole hesla musí být použita pro parametry hesla.
Tento test zkontroluje, zda je element Microsoft.Common.PasswordBox definován v hlavní šabloně parameters
a createUiDefinition.json outputs
. Typ parametru hlavní šablony pro pole s heslem musí být secureString
nebo secureObject
.
Tento test zkontroluje hlavní šablonu a createUiDefinition.json soubor. Příklad souboru createUiDefinition.json se zobrazí po hlavních příkladech šablony.
Následující příklad selže, protože parametr hlavní šablony passwordBox
je .string
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Následující příklad předá, protože parametr hlavní šablony passwordBox
je .secureString
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "secureString"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Soubor createUiDefinition.json pro tento příklad:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Pole heslo vyžaduje minimální délku.
Název testu: Pole hesel musí mít minimální délku.
Test zkontroluje, jestli element Microsoft.Common.PasswordBox používá constraints
s minimálně regex
12 znaky.
Následující příklad selže , protože neexistuje žádná constraints
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Následující příklad předá , protože regex
vyžaduje alespoň 12 znaků.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password",
"constraints": {
"required": true,
"regex": "^[a-zA-Z0-9]{12,}$",
"validationMessage": "Password must be at least 12 characters long, contain only numbers and letters"
}
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Textové pole musí používat ověření.
Název testu: Textová pole jsou ve správném formátu
Ověření pomocí textových polí můžete zkontrolovat, constraints
jestli obsahují a regex
message
.
Následující příklad selže.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
ToolTip musí existovat s hodnotou.
Název testu: Popisy by měly být k dispozici.
Tento test zkontroluje, zda toolTip
vlastnost existuje a obsahuje hodnotu.
Následující příklad selže.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
Nenastavujte výchozí uživatelské jméno.
Testovací název: Uživatelská jména by neměla mít výchozí
Test zkontroluje, jestli je pro Microsoft.Compute.UserNameTextBox nastavená defaultValue
sada.
Následující příklad selže , protože defaultValue
je k dispozici.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"defaultValue": "admin",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
Použití zprávy s ověřováním
Název testu: Ověření musí mít zprávu.
Tento test zkontroluje, zda všechny validations
v createUiDefinition.json zahrnují .message
Následující příklad selže, protože regex
ověření nemá message
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$"
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Následující příklad předá.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Velikosti virtuálních počítačů se musí shodovat
Název testu: Velikosti virtuálních počítačů se musí shodovat se šablonou
Tento test zkontroluje, jestli je Microsoft.Compute.SizeSelector v createUiDefinition.json outputs
a v části hlavní šablony parameters
. Parametry hlavní šablony, které určují defaultValue
, musí odpovídat hodnotě v ovládacím prvku allowedSizes
.
Tento test zkontroluje hlavní šablonu a createUiDefinition.json soubor. Příklad souboru createUiDefinition.json se zobrazí po hlavních příkladech šablony.
Následující příklad selže , protože hlavní šablona defaultValue
neodpovídá hodnotě v allowedSizes
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D9"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
Následující příklad předá , protože hlavní šablona defaultValue
odpovídá hodnotě v allowedSizes
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D3"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
Soubor createUiDefinition.json pro tento příklad:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "vmSize",
"type": "Microsoft.Compute.SizeSelector",
"label": "VM Size",
"toolTip": "Select a virtual machine size",
"recommendedSizes": [
"Standard_D1"
],
"constraints": {
"allowedSizes": [
"Standard_D1",
"Standard_D2",
"Standard_D3"
]
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"vmSize": "[basics('vmSize')]"
}
}
}
Další kroky
- Pokud chcete vytvořit uživatelské rozhraní webu Azure Portal, přečtěte si CreateUiDefinition.json prostředí pro vytváření spravovaných aplikací Azure.
- Pokud chcete použít sandbox Pro vytvoření definice uživatelského rozhraní, přečtěte si téma Testování rozhraní portálu pro spravované aplikace Azure.
- Další informace o ovládacích prvcích uživatelského rozhraní naleznete v tématu CreateUiDefinition elementy a CreateUiDefinition funkce.
- Další informace otestch