CreateUiDefinition.json för Azure-upplevelsen för att skapa hanterade program

Det här dokumentet beskriver huvudbegreppen i filen createUiDefinition.json . Azure Portal använder den här filen för att definiera användargränssnittet när du skapar ett hanterat program.

Mallen är följande

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

A CreateUiDefinition innehåller alltid tre egenskaper:

  • Handler
  • version
  • parametrar

Hanteraren ska alltid vara Microsoft.Azure.CreateUIDefoch den senaste versionen som stöds är 0.1.2-preview.

Schemat för parameteregenskapen beror på kombinationen av den angivna hanteraren och versionen. För hanterade program är configegenskaperna , , basicssteps, och outputs. Du använder config bara när du behöver åsidosätta standardbeteendet för basics steget. Grunderna och stegen innehåller de element – till exempel textrutor och listrutor – som ska visas i Azure Portal. Egenskapen outputs används för att mappa utdatavärdena för de angivna elementen till parametrarna i Azure Resource Manager-mallen.

Inkludera $schema rekommenderas, men valfritt. Om det anges måste värdet för version matcha versionen i URI:n $schema .

Du kan använda en JSON-redigerare för att skapa din createUiDefinition och sedan testa den i sandbox-miljön createUiDefinition för att förhandsgranska den. Mer information om sandbox-miljön finns i Testa portalgränssnittet för Azure Managed Applications.

Konfigurera

Egenskapen config är valfri. Använd det för att antingen åsidosätta standardbeteendet för grundsteget eller för att ange gränssnittet som en stegvis guide. Om config används är det den första egenskapen i avsnittet createUiDefinition.json-filenparameters. I följande exempel visas de tillgängliga egenskaperna.

"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
        }
    }
},

För egenskapen isValid skriver du ett uttryck som matchar antingen sant eller falskt. För egenskapen permission anger du en av resursprovideråtgärderna.

Guiden

Med isWizard egenskapen kan du kräva en lyckad validering av varje steg innan du fortsätter till nästa steg. När egenskapen isWizard inte har angetts är standardvärdet falskt och stegvis validering krävs inte.

När isWizard är aktiverat, inställt på sant, fliken Grundläggande är tillgänglig och alla andra flikar är inaktiverade. När knappen Nästa väljs anger flikens ikon om verifieringen av en flik har godkänts eller misslyckats. När en fliks obligatoriska fält har slutförts och verifierats tillåter knappen Nästa navigering till nästa flik. När alla flikar godkänns kan du gå till sidan Granska och skapa och välja knappen Skapa för att påbörja distributionen.

Tabbguiden

Grundläggande om åsidosättning

Med konfigurationen grunderna kan du anpassa grundsteget.

För descriptionanger du en markdown-aktiverad sträng som beskriver din resurs. Flerradsformat och länkar stöds.

Med elementen subscription och resourceGroup kan du ange fler verifieringar. Syntaxen för att ange verifieringar är identisk med den anpassade valideringen för textrutan. Du kan också ange permission verifieringar för prenumerationen eller resursgruppen.

Prenumerationskontrollen accepterar en lista över resursproviderns namnområden. Du kan till exempel ange Microsoft.Compute. Det visar ett felmeddelande när användaren väljer en prenumeration som inte stöder resursprovidern. Felet uppstår när resursprovidern inte är registrerad i den prenumerationen och användaren inte har behörighet att registrera resursprovidern.

Resursgruppskontrollen har ett alternativ för allowExisting. När truekan användarna välja resursgrupper som redan har resurser. Den här flaggan är mest tillämplig för lösningsmallar, där standardbeteendet kräver att användarna väljer en ny eller tom resursgrupp. I de flesta andra scenarier är det inte nödvändigt att ange den här egenskapen.

För locationanger du egenskaperna för platskontrollen som du vill åsidosätta. Alla egenskaper som inte åsidosättas anges till deras standardvärden. resourceTypes accepterar en matris med strängar som innehåller fullständigt kvalificerade resurstypsnamn. Platsalternativen är begränsade till endast regioner som stöder resurstyperna. allowedValues accepterar en matris med regionsträngar. Endast dessa regioner visas i listrutan. Du kan ange både allowedValues och resourceTypes. Resultatet är skärningspunkten för båda listorna. Slutligen visible kan egenskapen användas för att villkorligt eller helt inaktivera listrutan plats. 

Grundläggande inställningar

Steget Grundläggande är det första steget som genereras när Azure Portal parsar filen. Som standard kan användarna välja prenumeration, resursgrupp och plats för distribution i grundsteget.

Standardinställningar

Du kan lägga till fler element i det här avsnittet. När det är möjligt lägger du till element som frågar efter distributionsomfattande parametrar, till exempel namnet på ett kluster eller administratörsautentiseringsuppgifter.

I följande exempel visas en textruta som har lagts till i standardelementen.

"basics": [
    {
        "name": "textBox1",
        "type": "Microsoft.Common.TextBox",
        "label": "Textbox on basics",
        "defaultValue": "my text value",
        "toolTip": "",
        "visible": true
    }
]

Steg

Egenskapen steps innehåller noll eller flera steg som ska visas efter grunderna. Varje steg innehåller ett eller flera element. Överväg att lägga till steg per roll eller nivå för programmet som distribueras. Lägg till exempel till ett steg för primära nodindata och ett steg för arbetsnoderna i ett kluster.

"steps": [
    {
        "name": "demoConfig",
        "label": "Configuration settings",
        "elements": [
          ui-elements-needed-to-create-the-instance
        ]
    }
]

Utdata

Azure Portal använder outputs egenskapen för att mappa element från basics och steps till parametrarna för Azure Resource Manager-distributionsmallen. Nycklarna i den här ordlistan är namnen på mallparametrarna och värdena är egenskaper för utdataobjekten från de refererade elementen.

Om du vill ange resursnamnet för det hanterade programmet måste du inkludera ett värde med namnet applicationResourceName i utdataegenskapen. Om du inte anger det här värdet tilldelar programmet ett GUID för namnet. Du kan inkludera en textruta i användargränssnittet som begär ett namn från användaren.

"outputs": {
    "vmName": "[steps('appSettings').vmName]",
    "trialOrProduction": "[steps('appSettings').trialOrProd]",
    "userName": "[steps('vmCredentials').adminUsername]",
    "pwd": "[steps('vmCredentials').vmPwd.password]",
    "applicationResourceName": "[steps('appSettings').vmName]"
}

Resurstyper

Om du bara vill filtrera de tillgängliga platserna till de platser som stöder de resurstyper som ska distribueras anger du en matris med resurstyperna. Om du anger mer än en resurstyp returneras endast de platser som stöder alla resurstyper. Den här egenskapen är valfri.

{
    "$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 tillhandahåller funktioner för att arbeta med elementens indata och utdata samt funktioner som villkor. Dessa funktioner liknar både syntax och funktioner i Azure Resource Manager mallfunktioner.

Nästa steg

Själva filen createUiDefinition.json har ett enkelt schema. Det verkliga djupet i den kommer från alla element och funktioner som stöds. Dessa objekt beskrivs mer detaljerat på:

Ett aktuellt JSON-schema för createUiDefinition finns här: https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json.

Ett exempel på en användargränssnittsfil finns i createUiDefinition.json.