Udostępnij za pośrednictwem


Plik CreateUiDefinition.json dla środowiska tworzenia aplikacji zarządzanej platformy Azure

W tym dokumencie przedstawiono podstawowe pojęcia dotyczące pliku createUiDefinition.json . W witrynie Azure Portal ten plik jest używany do definiowania interfejsu użytkownika podczas tworzenia aplikacji zarządzanej.

Szablon jest następujący

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

Plik createUiDefinition.json zawsze zawiera trzy właściwości:

  • procedura obsługi
  • version
  • parameters

Program obsługi powinien zawsze mieć wartość Microsoft.Azure.CreateUIDef, a najnowsza obsługiwana wersja to 0.1.2-preview.

Schemat właściwości parameters zależy od kombinacji określonej procedury obsługi i wersji. W przypadku aplikacji zarządzanych obsługiwane właściwości to config, basics, stepsi outputs. Używasz config tylko wtedy, gdy musisz zastąpić domyślne zachowanie basics kroku. Podstawowe i kroki zawierają elementy , takie jak pola tekstowe i listy rozwijane, które mają być wyświetlane w witrynie Azure Portal. Właściwość outputs służy do mapowania wartości wyjściowych określonych elementów na parametry szablonu usługi Azure Resource Manager.

Dołączenie $schema jest zalecane, ale opcjonalne. Jeśli zostanie określony, wartość parametru version musi być zgodna z wersją w identyfikatorze $schema URI.

Możesz użyć edytora JSON, aby utworzyć element createUiDefinition, a następnie przetestować go w piaskownicy createUiDefinition, aby wyświetlić podgląd. Aby uzyskać więcej informacji na temat piaskownicy, zobacz Testowanie interfejsu portalu dla aplikacji zarządzanych platformy Azure.

Config

Właściwość jest opcjonalna config . Użyj go, aby zastąpić domyślne zachowanie kroku podstaw lub ustawić interfejs jako kreatora krok po kroku. Jeśli config jest używany, jest to pierwsza właściwość w sekcji createUiDefinition.json pliku parameters . W poniższym przykładzie przedstawiono dostępne właściwości.

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

isValid Dla właściwości napisz wyrażenie, które jest rozpoznawane na wartość true lub false. permission Dla właściwości określ jedną z akcji dostawcy zasobów.

Kreator

Właściwość isWizard umożliwia wymaganie pomyślnej weryfikacji każdego kroku przed przejściem do następnego kroku. isWizard Jeśli właściwość nie jest określona, wartość domyślna to false, a walidacja krok po kroku nie jest wymagana.

Po isWizard włączeniu ustaw wartość true, karta Podstawowe jest dostępna, a wszystkie inne karty są wyłączone. Po wybraniu przycisku Dalej ikona karty wskazuje, czy weryfikacja karty zakończyła się powodzeniem, czy niepowodzeniem. Po zakończeniu i zweryfikowaniu wymaganych pól karty przycisk Dalej umożliwia nawigację do następnej karty. Gdy wszystkie karty przechodzą walidację, możesz przejść do strony Przeglądanie i tworzenie, a następnie wybrać przycisk Utwórz, aby rozpocząć wdrażanie.

Kreator kart

Zastępowanie podstaw

Konfiguracja podstaw umożliwia dostosowanie kroku podstaw.

W przypadku descriptionelementu podaj ciąg z obsługą języka znaczników markdown, który opisuje zasób. Obsługiwane są formaty i łącza wielowierszowe.

subscription Elementy i resourceGroup umożliwiają określenie większej liczby weryfikacji. Składnia określania poprawności jest identyczna z niestandardową walidacją pola tekstowego. Można również określić permission weryfikacje subskrypcji lub grupy zasobów.

Kontrolka subskrypcji akceptuje listę przestrzeni nazw dostawcy zasobów. Można na przykład określić wartość Microsoft.Compute. Zostanie wyświetlony komunikat o błędzie, gdy użytkownik wybierze subskrypcję, która nie obsługuje dostawcy zasobów. Błąd występuje, gdy dostawca zasobów nie jest zarejestrowany w tej subskrypcji, a użytkownik nie ma uprawnień do rejestrowania dostawcy zasobów.

Kontrolka grupy zasobów ma opcję .allowExisting Gdy trueużytkownik może wybrać grupy zasobów, które mają już zasoby. Ta flaga jest najbardziej odpowiednia dla szablonów rozwiązań, gdzie domyślne zachowanie nakazuje użytkownikom wybranie nowej lub pustej grupy zasobów. W większości innych scenariuszy określenie tej właściwości nie jest konieczne.

W polu locationokreśl właściwości kontrolki lokalizacji, którą chcesz zastąpić. Wszystkie właściwości, które nie są zastępowane, są ustawione na ich wartości domyślne. resourceTypes akceptuje tablicę ciągów zawierających w pełni kwalifikowane nazwy typów zasobów. Opcje lokalizacji są ograniczone tylko do regionów obsługujących typy zasobów. allowedValues akceptuje tablicę ciągów regionów. Na liście rozwijanej są wyświetlane tylko te regiony. Można ustawić zarówno elementy , jak allowedValues i resourceTypes. Wynikiem jest przecięcie obu list. Na koniec visible właściwość może służyć do warunkowego lub całkowitego wyłączenia listy rozwijanej lokalizacji. 

Podstawy

Krok Podstawy jest pierwszym krokiem generowanym podczas analizowania pliku w witrynie Azure Portal. Domyślnie krok podstawowe umożliwia użytkownikom wybranie subskrypcji, grupy zasobów i lokalizacji wdrożenia.

Domyślne podstawy

Więcej elementów można dodać w tej sekcji. Jeśli to możliwe, dodaj elementy, które wysyłają zapytania o parametry całego wdrożenia, takie jak nazwa klastra lub poświadczenia administratora.

W poniższym przykładzie pokazano pole tekstowe, które zostało dodane do elementów domyślnych.

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

Kroki

Właściwość steps zawiera zero lub więcej kroków do wyświetlenia po podstawach. Każdy krok zawiera co najmniej jeden element. Rozważ dodanie kroków na rolę lub warstwę wdrażanej aplikacji. Na przykład dodaj krok dla danych wejściowych węzła podstawowego i krok dla węzłów roboczych w klastrze.

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

Dane wyjściowe

Witryna Azure Portal używa outputs właściwości do mapowania elementów z basics i steps na parametry szablonu wdrożenia usługi Azure Resource Manager. Klucze tego słownika są nazwami parametrów szablonu, a wartości są właściwościami obiektów wyjściowych z przywołynych elementów.

Aby ustawić nazwę zasobu aplikacji zarządzanej, należy uwzględnić wartość o nazwie applicationResourceName we właściwości outputs. Jeśli ta wartość nie zostanie ustawiona, aplikacja przypisze identyfikator GUID dla nazwy. Pole tekstowe można dołączyć do interfejsu użytkownika, które żąda nazwy od użytkownika.

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

Typy zasobów

Aby filtrować dostępne lokalizacje tylko do tych lokalizacji, które obsługują typy zasobów do wdrożenia, podaj tablicę typów zasobów. Jeśli podasz więcej niż jeden typ zasobu, zwracane są tylko te lokalizacje, które obsługują wszystkie typy zasobów. Ta właściwość jest opcjonalna.

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

Funkcje

Funkcja CreateUiDefinition umożliwia pracę z danymi wejściowymi i wyjściowymi elementów oraz funkcjami, takimi jak warunkowe. Te funkcje są podobne zarówno w składni, jak i w funkcjach szablonów usługi Azure Resource Manager.

Następne kroki

Sam plik createUiDefinition.json ma prosty schemat. Rzeczywista głębokość pochodzi ze wszystkich obsługiwanych elementów i funkcji. Te elementy zostały szczegółowo opisane w temacie:

Bieżący schemat JSON dla elementu createUiDefinition jest dostępny tutaj: https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json.

Aby uzyskać przykładowy plik interfejsu użytkownika, zobacz createUiDefinition.json.