CreateUiDefinition. json voor het maken van beheerde Azure-toepassingen
In dit document worden de kernconcepten van het bestand createUiDefinition.json geïntroduceerd . De Azure Portal gebruikt dit bestand om de gebruikersinterface te definiëren bij het maken van een beheerde toepassing.
De sjabloon ziet er als volgt uit
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"config": {
"isWizard": false,
"basics": { }
},
"basics": [ ],
"steps": [ ],
"outputs": { },
"resourceTypes": [ ]
}
}
Een CreateUiDefinition
bevat altijd drie eigenschappen:
- Handler
- versie
- parameters
De handler moet altijd zijn Microsoft.Azure.CreateUIDef
en de meest recente ondersteunde versie is 0.1.2-preview
.
Het schema van de eigenschap parameters is afhankelijk van de combinatie van de opgegeven handler en versie. Voor beheerde toepassingen zijn config
de ondersteunde eigenschappen , basics
, steps
en outputs
. U gebruikt config
alleen wanneer u het standaardgedrag van de basics
stap moet overschrijven. De eigenschappen basisbeginselen en stappen bevatten de elementen, zoals tekstvakken en vervolgkeuzelijsten, die moeten worden weergegeven in de Azure Portal. De eigenschap outputs wordt gebruikt om de uitvoerwaarden van de opgegeven elementen toe te wijzen aan de parameters van de Azure Resource Manager-sjabloon.
Opnemen $schema
wordt aanbevolen, maar optioneel. Indien opgegeven, moet de waarde voor version
overeenkomen met de versie binnen de $schema
URI.
U kunt een JSON-editor gebruiken om uw createUiDefinition te maken en deze vervolgens te testen in de createUiDefinition-sandbox om een voorbeeld ervan te bekijken. Zie De portalinterface testen voor Azure Managed Applications voor meer informatie over de sandbox.
Configureren
De config
eigenschap is optioneel. Gebruik deze om het standaardgedrag van de basisstap te overschrijven of om uw interface in te stellen als een stapsgewijze wizard. Als config
wordt gebruikt, is dit de eerste eigenschap in de sectie createUiDefinition.json van het bestand parameters
. In het volgende voorbeeld ziet u de beschikbare eigenschappen.
"config": {
"isWizard": false,
"basics": {
"description": "Customized description with **markdown**, see [more](https://www.microsoft.com).",
"subscription": {
"constraints": {
"validations": [
{
"isValid": "[not(contains(subscription().displayName, 'Test'))]",
"message": "Can't use test subscription."
},
{
"permission": "Microsoft.Compute/virtualmachines/write",
"message": "Must have write permission for the virtual machine."
},
{
"permission": "Microsoft.Compute/virtualMachines/extensions/write",
"message": "Must have write permission for the extension."
}
]
},
"resourceProviders": [
"Microsoft.Compute"
]
},
"resourceGroup": {
"constraints": {
"validations": [
{
"isValid": "[not(contains(resourceGroup().name, 'test'))]",
"message": "Resource group name can't contain 'test'."
}
]
},
"allowExisting": true
},
"location": {
"label": "Custom label for location",
"toolTip": "provide a useful tooltip",
"resourceTypes": [
"Microsoft.Compute/virtualMachines"
],
"allowedValues": [
"eastus",
"westus2"
],
"visible": true
}
}
},
Schrijf voor de isValid
eigenschap een expressie die wordt omgezet in waar of onwaar. Geef voor de permission
eigenschap een van de acties van de resourceprovider op.
Wizard
Met de isWizard
eigenschap kunt u een geslaagde validatie van elke stap vereisen voordat u verdergaat met de volgende stap. Wanneer de isWizard
eigenschap niet is opgegeven, is de standaardwaarde false en is stapsgewijze validatie niet vereist.
Wanneer isWizard
is ingeschakeld, stelt u in op true, het tabblad Basisinformatie is beschikbaar en alle andere tabbladen zijn uitgeschakeld. Wanneer de knop Volgende is geselecteerd, geeft het pictogram van het tabblad aan of de validatie van een tabblad is geslaagd of mislukt. Nadat de vereiste velden van een tabblad zijn ingevuld en gevalideerd, kunt u met de knop Volgende naar het volgende tabblad navigeren. Wanneer alle tabbladen zijn gevalideerd, gaat u naar de pagina Controleren en maken en selecteert u de knop Maken om de implementatie te starten.
Basisbeginselen overschrijven
Met de basisconfiguratie kunt u de basisstap aanpassen.
Geef voor description
een tekenreeks met markdown op die uw resource beschrijft. Indeling en koppelingen met meerdere regels worden ondersteund.
Met de subscription
elementen en resourceGroup
kunt u meer validaties opgeven. De syntaxis voor het opgeven van validaties is identiek aan de aangepaste validatie voor het tekstvak. U kunt ook validaties opgeven permission
voor het abonnement of de resourcegroep.
Het abonnementsbeheer accepteert een lijst met naamruimten van resourceproviders. U kunt bijvoorbeeld Microsoft.Compute opgeven. Er wordt een foutbericht weergegeven wanneer de gebruiker een abonnement selecteert dat de resourceprovider niet ondersteunt. De fout treedt op wanneer de resourceprovider niet is geregistreerd voor dat abonnement en de gebruiker niet gemachtigd is om de resourceprovider te registreren.
Het besturingselement voor de resourcegroep heeft een optie voor allowExisting
. Wanneer true
kunnen de gebruikers resourcegroepen selecteren die al resources hebben. Deze vlag is het meest van toepassing op oplossingssjablonen, waarbij standaardgedrag vereist dat gebruikers een nieuwe of lege resourcegroep moeten selecteren. In de meeste andere scenario's is het opgeven van deze eigenschap niet nodig.
Geef voor location
de eigenschappen op voor het locatiebeheer dat u wilt overschrijven. Eigenschappen die niet worden overschreven, worden ingesteld op de standaardwaarden. resourceTypes
accepteert een matrix met tekenreeksen met volledig gekwalificeerde resourcetypenamen. De locatieopties zijn beperkt tot alleen regio's die ondersteuning bieden voor de resourcetypen. allowedValues
accepteert een matrix met regiotekenreeksen. Alleen deze regio's worden weergegeven in de vervolgkeuzelijst. U kunt zowel resourceTypes
als allowedValues
instellen. Het resultaat is het snijpunt van beide lijsten. Ten slotte kan de visible
eigenschap worden gebruikt om de vervolgkeuzelijst locatie voorwaardelijk of volledig uit te schakelen.
Basisbeginselen
De stap Basisbeginselen is de eerste stap die wordt gegenereerd wanneer de Azure Portal het bestand parseert. Standaard kunnen gebruikers met de basisstap het abonnement, de resourcegroep en de locatie voor implementatie kiezen.
U kunt meer elementen toevoegen in deze sectie. Voeg indien mogelijk elementen toe die een query uitvoeren op implementatiebrede parameters, zoals de naam van een cluster of beheerdersreferenties.
In het volgende voorbeeld ziet u een tekstvak dat is toegevoegd aan de standaardelementen.
"basics": [
{
"name": "textBox1",
"type": "Microsoft.Common.TextBox",
"label": "Textbox on basics",
"defaultValue": "my text value",
"toolTip": "",
"visible": true
}
]
Stappen
De eigenschap steps bevat nul of meer stappen om weer te geven na de basisbeginselen. Elke stap bevat een of meer elementen. Overweeg stappen toe te voegen per rol of laag van de toepassing die wordt geïmplementeerd. Voeg bijvoorbeeld een stap toe voor invoer van het primaire knooppunt en een stap voor de werkknooppunten in een cluster.
"steps": [
{
"name": "demoConfig",
"label": "Configuration settings",
"elements": [
ui-elements-needed-to-create-the-instance
]
}
]
Uitvoerwaarden
De Azure Portal gebruikt de outputs
eigenschap om elementen van basics
en steps
toe te wijzen aan de parameters van de Azure Resource Manager-implementatiesjabloon. De sleutels van deze woordenlijst zijn de namen van de sjabloonparameters en de waarden zijn eigenschappen van de uitvoerobjecten van de elementen waarnaar wordt verwezen.
Als u de naam van de beheerde toepassingsresource wilt instellen, moet u een waarde met de naam applicationResourceName
opnemen in de eigenschap outputs. Als u deze waarde niet instelt, wijst de toepassing een GUID toe voor de naam. U kunt een tekstvak opnemen in de gebruikersinterface waarin een naam van de gebruiker wordt aangevraagd.
"outputs": {
"vmName": "[steps('appSettings').vmName]",
"trialOrProduction": "[steps('appSettings').trialOrProd]",
"userName": "[steps('vmCredentials').adminUsername]",
"pwd": "[steps('vmCredentials').vmPwd.password]",
"applicationResourceName": "[steps('appSettings').vmName]"
}
Resourcetypen
Als u de beschikbare locaties wilt filteren op alleen de locaties die ondersteuning bieden voor de resourcetypen die moeten worden geïmplementeerd, geeft u een matrix van de resourcetypen op. Als u meer dan één resourcetype opgeeft, worden alleen de locaties geretourneerd die ondersteuning bieden voor alle resourcetypen. Deze eigenschap is optioneel.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"resourceTypes": ["Microsoft.Compute/disks"],
"basics": [
...
Functions
CreateUiDefinition biedt functies voor het werken met de invoer en uitvoer van elementen, en functies zoals voorwaardelijkheden. Deze functies zijn qua syntaxis en functionaliteit vergelijkbaar met Azure Resource Manager sjabloonfuncties.
Volgende stappen
Het bestand createUiDefinition.json zelf heeft een eenvoudig schema. De werkelijke diepte ervan is afkomstig van alle ondersteunde elementen en functies. Deze items worden gedetailleerder beschreven op:
Een huidig JSON-schema voor createUiDefinition is hier beschikbaar: https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json
.
Zie createUiDefinition.json voor een voorbeeld van een gebruikersinterfacebestand.