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

W tym dokumencie przedstawiono podstawowe pojęcia dotyczące pliku createUiDefinition.json . Azure Portal używa tego pliku do zdefiniowania 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": [ ]
    }
}

Obiekt CreateUiDefinition zawsze zawiera trzy właściwości:

  • Obsługi
  • Wersja
  • parameters

Program obsługi powinien zawsze mieć Microsoft.Azure.CreateUIDefwartość , 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 trzeba zastąpić domyślne zachowanie basics kroku. Podstawowe i kroki właściwości zawierają elementy — takie jak pola tekstowe i listy rozwijane — które mają być wyświetlane w 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 . Służy do zastępowania domyślnego zachowania kroku podstawowego lub ustawiania interfejsu jako kreatora krok po kroku. Jeśli config jest używany, jest to pierwsza właściwość w sekcji pliku parameterscreateUiDefinition.json. 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 rozpoznaje wartość true lub false. permission Dla właściwości określ jedną z akcji dostawcy zasobów.

Kreatora

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 weryfikacja 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ługiwany jest format wielowierszowy i linki.

subscription Elementy i resourceGroup umożliwiają określenie większej liczby walidacji. Składnia określania walidacji jest identyczna z niestandardową walidacją pola tekstowego. Można również określić permission walidację 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, które obsługują typy zasobów. allowedValues akceptuje tablicę ciągów regionów. Tylko te regiony są wyświetlane na liście rozwijanej. 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 Podstawowe to pierwszy krok wygenerowany, gdy Azure Portal analizuje plik. Domyślnie krok podstaw umożliwia użytkownikom wybieranie 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 domyślnych elementów.

"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 procesu roboczego w klastrze.

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

Dane wyjściowe

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 to nazwy parametrów szablonu, a wartości są właściwościami obiektów wyjściowych z elementów, do których odwołuje się odwołanie.

Aby ustawić nazwę zasobu aplikacji zarządzanej, należy dołączyć wartość o nazwie applicationResourceName we właściwości outputs. Jeśli nie ustawisz tej wartości, 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

Metoda CreateUiDefinition udostępnia funkcje do pracy 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.

Przykładowy plik interfejsu użytkownika można znaleźć w pliku createUiDefinition.json.