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 is als volgt

{
    "$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 de ondersteunde eigenschappen , configbasicsen stepsoutputs. U gebruikt config alleen wanneer u het standaardgedrag van de basics stap moet overschrijven. De basis- en stappeneigenschappen bevatten de elementen, zoals tekstvaken en vervolgkeuzelijsten, die moeten worden weergegeven in de Azure Portal. De eigenschap uitvoer wordt gebruikt om de uitvoerwaarden van de opgegeven elementen toe te wijzen aan de parameters van de Azure Resource Manager-sjabloon.

Inclusief $schema wordt aanbevolen, maar optioneel. Indien opgegeven, moet de waarde overeenkomen version 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 te bekijken. Zie Uw portalinterface testen voor Azure Managed Applications voor meer informatie over de sandbox.

Configureren

De config eigenschap is optioneel. Gebruik deze methode om het standaardgedrag van de basisstap te overschrijven of om uw interface in te stellen als een stapsgewijze wizard. Als config deze 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 onwaar en is stapsgewijze validatie niet vereist.

Wanneer isWizard deze optie is ingeschakeld, is het tabblad Basisbeginselen beschikbaar en worden alle andere tabbladen 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 voltooid en gevalideerd, staat de knop Volgende navigatie toe naar het volgende tabblad. Wanneer alle tabbladen validatie doorstaan, 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 descriptioneen tekenreeks met markdown op waarvoor uw resource wordt beschreven. De indeling en koppelingen met meerdere regels worden ondersteund.

Met de subscription en resourceGroup elementen 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 resourceprovidernaamruimten. 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 gebruikers een nieuwe of lege resourcegroep moet selecteren. In de meeste andere scenario's is het opgeven van deze eigenschap niet nodig.

locationGeef 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 regioreeksen. Alleen deze regio's worden weergegeven in de vervolgkeuzelijst. U kunt zowel als allowedValuesresourceTypes. Het resultaat is het snijpunt van beide lijsten. Ten slotte kan de visible eigenschap worden gebruikt om de vervolgkeuzelijst voor de locatie voorwaardelijk of volledig uit te schakelen. 

Basisbeginselen

De stap Basisbeginselen is de eerste stap die wordt gegenereerd wanneer het Azure Portal het bestand parseert. Met de basisstap kunnen gebruikers standaard het abonnement, de resourcegroep en de locatie voor implementatie kiezen.

Basics default

U kunt meer elementen toevoegen in deze sectie. Voeg indien mogelijk elementen toe waarmee parameters voor implementatiebrede query's worden uitgevoerd, 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 stappen 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 toe te wijzen van basics en steps naar 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 resourcenaam van de beheerde toepassing wilt instellen, moet u een waarde opnemen met de naam applicationResourceName 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 waarmee 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 die ondersteuning bieden voor alle resourcetypen geretourneerd. 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 voorwaardelijke functies. Deze functies zijn vergelijkbaar in de syntaxis en functionaliteit van Azure Resource Manager sjabloonfuncties.

Volgende stappen

Het bestand createUiDefinition.json zelf heeft een eenvoudig schema. De werkelijke diepte hiervan is afkomstig van alle ondersteunde elementen en functies. Deze items worden gedetailleerder beschreven op:

Hier vindt u een huidig JSON-schema voor createUiDefinition: https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json.

Zie createUiDefinition.json voor een voorbeeld van een gebruikersinterfacebestand.