Share via


CreateUiDefinition. json voor het maken van beheerde Azure-toepassingen

In dit document worden de belangrijkste concepten van het createUiDefinition.json-bestand geïntroduceerd. 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.json bestand bevat altijd drie eigenschappen:

  • handler
  • version
  • 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 , en basicsstepsoutputs. 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 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 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 er een voorbeeld van te bekijken. Zie Uw portalinterface testen voor Azure Managed Applications voor meer informatie over de sandbox.

Configureren

De config eigenschap is optioneel. Gebruik dit om het standaardgedrag van de basisstap te overschrijven of om uw interface in te stellen als een stapsgewijze wizard. Als config dit wordt gebruikt, is dit de eerste eigenschap in de sectie van parameters het createUiDefinition.json-bestand. 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 resourceprovideracties op.

Wizard

Met isWizard de eigenschap kunt u een geslaagde validatie van elke stap vereisen voordat u doorgaat met de volgende stap. Wanneer de isWizard eigenschap niet is opgegeven, is de standaardwaarde onwaar en is stapsgewijze validatie niet vereist.

Als isWizard deze optie is ingeschakeld, is het tabblad Basisinformatie beschikbaar en zijn 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, kunt u met de knop Volgende naar het volgende tabblad navigeren. Wanneer alle tabbladen de validatie doorstaan, kunt u naar de pagina Controleren en Maken gaan en de knop Maken selecteren om de implementatie te starten.

Wizard Tab

Basisbeginselen overschrijven

Met de basisconfiguratie kunt u de basisstap aanpassen.

Geef descriptionhiervoor een tekenreeks met markdown op die uw resource beschrijft. Indeling en koppelingen met meerdere regels worden ondersteund.

Met de subscription elementen 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 resourceprovidernaamruimten. U kunt bijvoorbeeld opgeven Microsoft.Compute. Er wordt een foutbericht weergegeven wanneer de gebruiker een abonnement selecteert dat geen ondersteuning biedt voor de resourceprovider. 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 van 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 selecteren. In de meeste andere scenario's is het opgeven van deze eigenschap niet nodig.

Geef 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 die 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. 

Basisprincipes

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

Standaardbeginselen

U kunt meer elementen toevoegen in deze sectie. Voeg indien mogelijk elementen toe die query's uitvoeren op parameters voor de implementatie, 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 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 primaire knooppuntinvoer en een stap voor de werkknooppunten in een cluster.

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

Uitvoerwaarden

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 uitvoereigenschap. 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 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": [
        ...

Functies

CreateUiDefinition biedt functies voor het werken met de invoer en uitvoer van elementen en functies zoals conditionals. Deze functies zijn vergelijkbaar in zowel syntaxis als functionaliteit voor Azure Resource Manager-sjabloonfuncties.

Volgende stappen

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

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

Zie createUiDefinition.json voor een voorbeeld van een gebruikersinterfacebestand.