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.CreateUIDefen 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 configde ondersteunde eigenschappen , basics, stepsen 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.

Tab-wizard

Basisbeginselen overschrijven

Met de basisconfiguratie kunt u de basisstap aanpassen.

Geef voor descriptioneen 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 truekunnen 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 locationde 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 resourceTypesals 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.

Standaard basisbeginselen

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.