Sdílet prostřednictvím


Kurz: Vytvoření formulářů webu Azure Portal pro specifikaci šablony

Můžete vytvořit formulář, který se zobrazí na webu Azure Portal, který uživatelům pomůže s nasazením specifikace šablony. Formulář umožňuje uživatelům zadat hodnoty, které se předávají jako parametry specifikace šablony.

Při vytváření specifikace šablony zabalíte formulář a šablonu Azure Resource Manageru (šablonu ARM) společně. Nasazení specifikace šablony prostřednictvím portálu automaticky spustí formulář.

Následující snímek obrazovky ukazuje formulář otevřený na webu Azure Portal.

Snímek obrazovky s formulářem webu Azure Portal pro zadání hodnot specifikace šablony

Požadavky

Účet Azure s aktivním předplatným. Vytvoření účtu zdarma

Pro Azure PowerShell použijte verzi 6.0.0 nebo novější. Pro Azure CLI použijte verzi 2.24.0 nebo novější.

Vytvoření šablony

Pokud chcete zobrazit různé prvky portálu, které jsou k dispozici ve formuláři, použijte šablonu ARM s několika parametry. Následující šablona vytvoří trezor klíčů, nakonfiguruje oprávnění k trezoru klíčů pro uživatele a přidá tajný klíč.

Zkopírujte tento soubor a uložte ho místně. V tomto kurzu se předpokládá, že jste ho pojmenovali keyvault.json ale můžete mu dát libovolný název.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the Azure location where the key vault should be created."
      }
    },
    "enabledForDeployment": {
      "type": "bool",
      "defaultValue": false,
      "allowedValues": [
        true,
        false
      ],
      "metadata": {
        "description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
      }
    },
    "enabledForDiskEncryption": {
      "type": "bool",
      "defaultValue": false,
      "allowedValues": [
        true,
        false
      ],
      "metadata": {
        "description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
      }
    },
    "enabledForTemplateDeployment": {
      "type": "bool",
      "defaultValue": false,
      "allowedValues": [
        true,
        false
      ],
      "metadata": {
        "description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
      }
    },
    "tenantId": {
      "type": "string",
      "defaultValue": "[subscription().tenantId]",
      "metadata": {
        "description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
      }
    },
    "objectId": {
      "type": "string",
      "metadata": {
        "description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
      }
    },
    "keysPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
      }
    },
    "secretsPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "standard",
      "allowedValues": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "Specifies whether the key vault is a standard vault or a premium vault."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the secret that you want to create."
      }
    },
    "secretValue": {
      "type": "secureString",
      "metadata": {
        "description": "Specifies the value of the secret that you want to create."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2022-07-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[parameters('location')]",
      "properties": {
        "enabledForDeployment": "[parameters('enabledForDeployment')]",
        "enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
        "enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
        "tenantId": "[parameters('tenantId')]",
        "accessPolicies": [
          {
            "objectId": "[parameters('objectId')]",
            "tenantId": "[parameters('tenantId')]",
            "permissions": {
              "keys": "[parameters('keysPermissions')]",
              "secrets": "[parameters('secretsPermissions')]"
            }
          }
        ],
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "apiVersion": "2022-07-01",
      "name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
      ],
      "properties": {
        "value": "[parameters('secretValue')]"
      }
    }
  ]
}

Vytvořit výchozí formulář

Azure Portal poskytuje sandbox pro vytváření a zobrazování náhledů formulářů. Tento sandbox může vykreslit formulář z existující šablony ARM. Pomocí tohoto výchozího formuláře můžete začít vytvářet formulář pro specifikaci šablony. Další informace o struktuře formuláře naleznete v části FormViewType.

  1. Otevřete sandbox zobrazení formuláře.

    Snímek obrazovky s rozhraním sandboxu pro zobrazení formuláře na webu Azure Portal

  2. V typu balíčku vyberte CustomTemplate. Před zadáním šablony nasazení se ujistěte, že jste vybrali typ balíčku.

  3. V šabloně nasazení (volitelné) vyberte šablonu trezoru klíčů, kterou jste uložili místně. Po zobrazení výzvy, pokud chcete přepsat aktuální změny, vyberte Ano. Automaticky vygenerovaný formulář se zobrazí v okně kódu. Formulář můžete upravit z portálu. Pokud chcete formulář přizpůsobit, podívejte se na přizpůsobení formuláře. Pokud se pozorně podíváte na automaticky vygenerovaný formulář, výchozí název je Testovací formulářové zobrazení. Je definován pouze jeden krok označovaný jako základy .

    {
      "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json",
      "view": {
        "kind": "Form",
        "properties": {
          "title": "Test Form View",
          "steps": [
            {
              "name": "basics",
              "label": "Basics",
              "elements": [
                ...
              ]
            }
          ]
        },
        "outputs": {
          ...
        }
      }
    }
    
  4. Pokud chcete zjistit, že funguje bez jakýchkoli úprav, vyberte Náhled.

    Snímek obrazovky s vygenerovaným základním formulářem webu Azure Portal

    Sandbox zobrazí formulář. Obsahuje pole pro výběr předplatného, skupiny prostředků a oblasti. Obsahuje také pole pro všechny parametry ze šablony.

    Většina polí je textová pole, ale některá pole jsou specifická pro typ parametru. Pokud vaše šablona obsahuje povolené hodnoty pro parametr, automaticky vygenerovaný formulář používá rozevírací prvek. Rozevírací prvek je předem vyplněný povolenými hodnotami.

    Mezi nadpisem a podrobnostmi projektu nejsou žádné karty, protože výchozí formulář má definovaný jenom jeden krok. V části Přizpůsobit formulář rozdělíte parametry na více karet.

    Upozorňující

    Nevybírejte možnost Vytvořit , protože spustí skutečné nasazení. Můžete nasadit specifikaci šablony později v tomto kurzu.

  5. Pokud chcete verzi Preview opustit, vyberte Zrušit.

Přizpůsobit formulář

Výchozí formulář je dobrým výchozím bodem pro pochopení formulářů, ale obvykle ho chcete přizpůsobit. Můžete ho upravit v sandboxu nebo v editoru Visual Studio Code. Možnost Preview je dostupná jenom v sandboxu.

  1. Dejte formuláři název , který popisuje jeho použití.

    {
      "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#",
      "view": {
        "kind": "Form",
        "properties": {
          "title": "Key Vault and secret",
    
  2. Výchozí formulář obsahoval všechna pole pro šablonu zkombinované do jednoho kroku s názvem Základy. Pokud chcete uživatelům pomoct pochopit hodnoty, které poskytují, rozdělte formulář na kroky. Každý krok obsahuje pole související s logickou částí řešení, která se mají nasadit.

    Vyhledejte krok s popiskem Základy. Tento krok ponechte, ale přidejte kroky, které se zaměřují na konfiguraci trezoru klíčů, nastavení uživatelských oprávnění a zadání tajného klíče. Za základní krok přidejte čárku.

    {
      "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#",
      "view": {
        "kind": "Form",
        "properties": {
          "title": "Key Vault and secret",
          "steps": [
            {
              "name": "basics",
              "label": "Basics",
              "elements": [
                ...
              ]
            },
            {
              "name": "keyvault",
              "label": "Key Vault",
              "elements": [
              ]
            },
            {
              "name": "permissions",
              "label": "Permissions",
              "elements": [
              ]
            },
            {
              "name": "secret",
              "label": "Secret",
              "elements": [
              ]
            }
          ]
        },
        "outputs": {
          ...
        }
      }
    }
    

    Důležité

    Vlastnosti ve formuláři rozlišují malá a velká písmena. Ujistěte se, že používáte velikost pouzdra zobrazenou v příkladech.

  3. Vyberte Náhled. Zobrazí se kroky, ale většina z nich nemá žádné prvky.

    Snímek obrazovky s formulářem webu Azure Portal s několika kroky

  4. Přesuňte prvky do příslušných kroků. Začněte s elementy označenými názvem tajného klíče a hodnotou tajného klíče. Odeberte tyto prvky z kroku Základy a přidejte je do kroku Tajný kód .

    {
      "name": "secret",
      "label": "Secret",
      "elements": [
      {
          "name": "secretName",
          "type": "Microsoft.Common.TextBox",
          "label": "Secret Name",
          "defaultValue": "",
          "toolTip": "Specifies the name of the secret that you want to create.",
          "constraints": {
            "required": true,
            "regex": "",
            "validationMessage": ""
          },
          "visible": true
        },
        {
          "name": "secretValue",
          "type": "Microsoft.Common.PasswordBox",
          "label": {
            "password": "Secret Value",
            "confirmPassword": "Confirm password"
          },
          "toolTip": "Specifies the value of the secret that you want to create.",
          "constraints": {
            "required": true,
            "regex": "",
            "validationMessage": ""
          },
          "options": {
            "hideConfirmation": true
          },
          "visible": true
        }
      ]
    }
    
  5. Když přesunete prvky, opravte outputs oddíl. V současné době oddíl výstupy odkazuje na tyto prvky, jako by byly stále v základním kroku. Opravte syntaxi tak, aby odkazovat na prvky v secret kroku.

    "outputs": {
      "parameters": {
        ...
        "secretName": "[steps('secret').secretName]",
        "secretValue": "[steps('secret').secretValue]"
      }
    
  6. Pokračujte v přesouvání prvků na příslušné kroky. Místo toho, abyste si prošli jednotlivé formuláře, podívejte se na aktualizovaný formulář.

    {
      "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#",
      "view": {
        "kind": "Form",
        "properties": {
          "title": "Key Vault and secret",
          "steps": [
            {
              "name": "basics",
              "label": "Basics",
              "elements": [
                {
                  "name": "resourceScope",
                  "type": "Microsoft.Common.ResourceScope",
                  "location": {
                    "resourceTypes": [
                      "microsoft.resources/resourcegroups"
                    ]
                  }
                }
              ]
            },
            {
              "name": "keyvault",
              "label": "Key Vault",
              "elements": [
                {
                  "name": "keyVaultName",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Key Vault Name",
                  "defaultValue": "",
                  "toolTip": "Specifies the name of the key vault.",
                  "constraints": {
                    "required": true,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                },
                {
                  "name": "skuName",
                  "type": "Microsoft.Common.DropDown",
                  "label": "Sku Name",
                  "defaultValue": "Standard",
                  "toolTip": "Specifies whether the key vault is a standard vault or a premium vault.",
                  "constraints": {
                    "required": false,
                    "allowedValues": [
                      {
                        "label": "Standard",
                        "value": "Standard"
                      },
                      {
                        "label": "Premium",
                        "value": "Premium"
                      }
                    ]
                  },
                  "visible": true
                },
                {
                  "name": "location",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Location",
                  "defaultValue": "[[resourceGroup().location]",
                  "toolTip": "Specifies the Azure location where the key vault should be created.",
                  "constraints": {
                    "required": false,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                },
                {
                  "name": "enabledForDeployment",
                  "type": "Microsoft.Common.DropDown",
                  "label": "Enabled For Deployment",
                  "defaultValue": "false",
                  "toolTip": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault.",
                  "constraints": {
                    "required": false,
                    "allowedValues": [
                      {
                        "label": "true",
                        "value": true
                      },
                      {
                        "label": "false",
                        "value": false
                      }
                    ]
                  },
                  "visible": true
                },
                {
                  "name": "enabledForDiskEncryption",
                  "type": "Microsoft.Common.DropDown",
                  "label": "Enabled For Disk Encryption",
                  "defaultValue": "false",
                  "toolTip": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys.",
                  "constraints": {
                    "required": false,
                    "allowedValues": [
                      {
                        "label": "true",
                        "value": true
                      },
                      {
                        "label": "false",
                        "value": false
                      }
                    ]
                  },
                  "visible": true
                },
                {
                  "name": "enabledForTemplateDeployment",
                  "type": "Microsoft.Common.DropDown",
                  "label": "Enabled For Template Deployment",
                  "defaultValue": "false",
                  "toolTip": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault.",
                  "constraints": {
                    "required": false,
                    "allowedValues": [
                      {
                        "label": "true",
                        "value": true
                      },
                      {
                        "label": "false",
                        "value": false
                      }
                    ]
                  },
                  "visible": true
                }
              ]
            },
            {
              "name": "permissions",
              "label": "Permissions",
              "elements": [
                {
                  "name": "tenantId",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Tenant Id",
                  "defaultValue": "[[subscription().tenantId]",
                  "toolTip": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.",
                  "constraints": {
                    "required": false,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                },
                {
                  "name": "objectId",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Object Id",
                  "defaultValue": "",
                  "toolTip": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets.",
                  "constraints": {
                    "required": true,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                },
                {
                  "name": "keysPermissions",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Keys Permissions",
                  "defaultValue": "[[\"list\"]",
                  "toolTip": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge.",
                  "constraints": {
                    "required": false,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                },
                {
                  "name": "secretsPermissions",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Secrets Permissions",
                  "defaultValue": "[[\"list\"]",
                  "toolTip": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge.",
                  "constraints": {
                    "required": false,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                }
              ]
            },
            {
              "name": "secret",
              "label": "Secret",
              "elements": [
                {
                  "name": "secretName",
                  "type": "Microsoft.Common.TextBox",
                  "label": "Secret Name",
                  "defaultValue": "",
                  "toolTip": "Specifies the name of the secret that you want to create.",
                  "constraints": {
                    "required": true,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "visible": true
                },
                {
                  "name": "secretValue",
                  "type": "Microsoft.Common.PasswordBox",
                  "label": {
                    "password": "Secret Value",
                    "confirmPassword": "Confirm password"
                  },
                  "toolTip": "Specifies the value of the secret that you want to create.",
                  "constraints": {
                    "required": true,
                    "regex": "",
                    "validationMessage": ""
                  },
                  "options": {
                    "hideConfirmation": true
                  },
                  "visible": true
                }
              ]
            }
          ]
        },
        "outputs": {
          "parameters": {
            "keyVaultName": "[steps('keyvault').keyVaultName]",
            "location": "[steps('keyvault').location]",
            "enabledForDeployment": "[steps('keyvault').enabledForDeployment]",
            "enabledForDiskEncryption": "[steps('keyvault').enabledForDiskEncryption]",
            "enabledForTemplateDeployment": "[steps('keyvault').enabledForTemplateDeployment]",
            "tenantId": "[steps('permissions').tenantId]",
            "objectId": "[steps('permissions').objectId]",
            "keysPermissions": "[steps('permissions').keysPermissions]",
            "secretsPermissions": "[steps('permissions').secretsPermissions]",
            "skuName": "[steps('keyvault').skuName]",
            "secretName": "[steps('secret').secretName]",
            "secretValue": "[steps('secret').secretValue]"
          },
          "kind": "ResourceGroup",
          "location": "[steps('basics').resourceScope.location.name]",
          "resourceGroupId": "[steps('basics').resourceScope.resourceGroup.id]"
        }
      }
    }
    
  7. Uložte tento soubor místně s názvem keyvaultform.json.

Vytvoření specifikace šablony

Při vytváření specifikace šablony zadejte oba soubory.

V PowerShellu použijte New-AzTemplateSpec a zadejte formulář v parametru -UIFormDefinitionFile .

New-AzTemplateSpec `
  -name keyvaultspec `
  -version 1 `
  -ResourceGroupName templateSpecRG `
  -location westus2 `
  -templatefile keyvault.json `
  -UIFormDefinitionFile keyvaultform.json

Pro Azure CLI použijte příkaz az ts create a zadejte formulář v parametru --ui-form-definition .

az ts create \
  --name keyvaultspec \
  --version 1 \
  --resource-group templatespecRG \
  --location westus2 \
  --template-file keyvault.json \
  --ui-form-definition keyvaultform.json

Nasazení prostřednictvím portálu

Pokud chcete formulář otestovat, přejděte na portál a přejděte na specifikaci šablony. Vyberte Nasadit.

Snímek obrazovky s přehledem specifikace šablony Azure se zvýrazněnou možností nasazení

Zobrazí se formulář, který jste vytvořili. Projděte si kroky a zadejte hodnoty polí.

V kroku Základy se zobrazí pole pro oblast. Toto pole je určené pro umístění skupiny prostředků. V kroku služby Key Vault se zobrazí pole pro umístění. Toto pole je určené pro umístění trezoru klíčů.

V kroku Oprávnění zadejte ID uživatele pro ID objektu. Pro oprávnění ke klíči a tajnému klíči použijte výchozí hodnotu (["list"]). Tuto možnost v další části vylepšíte.

Po zadání hodnot vyberte Vytvořit a nasaďte specifikaci šablony.

Vylepšení formuláře

V předchozí části jste přidali kroky a přesunuli prvky, ale nezměnili jste žádné výchozí chování. V této části provedete změny, které zlepší prostředí pro uživatele specifikace šablony.

V předchozích dvou polích oprávnění byla textová pole. Teď použijete rozevírací seznam. Nastavte typ na Microsoft.Common.DropDown.

Aktualizace keysPermissions:

{
  "name": "keysPermissions",
  "type": "Microsoft.Common.DropDown",

A secretsPermissions:

{
  "name": "secretsPermissions",
  "type": "Microsoft.Common.DropDown",

Tato pole musí šabloně předat pole. Běžný rozevírací seznam nefunguje, protože umožňuje vybrat jenom jednu hodnotu. Pokud chcete vybrat více než jednu hodnotu a předat je jako matici, přidejte multiselect pole a nastavte ho na true.

{
  "name": "keysPermissions",
  "type": "Microsoft.Common.DropDown",
  "label": "Keys Permissions",
  "multiselect": true,
{
  "name": "secretsPermissions",
  "type": "Microsoft.Common.DropDown",
  "label": "Secrets Permissions",
  "multiselect": true,

Nakonec zadejte povolené hodnoty pro rozevírací seznam a výchozí hodnotu.

{
  "name": "keysPermissions",
  "type": "Microsoft.Common.DropDown",
  "label": "Keys Permissions",
  "multiselect": true,
  "defaultValue":{
    "value": "list"
  },
  "toolTip": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge.",
  "constraints": {
    "required": false,
    "allowedValues":[
      {
        "label": "all",
        "value": "all"
      },
      {
        "label": "encrypt",
        "value": "encrypt"
      },
      {
        "label": "decrypt",
        "value": "decrypt"
      },
      {
        "label": "list",
        "value": "list"
      },
      {
        "label": "delete",
        "value": "delete"
      },
      {
        "label": "backup",
        "value": "backup"
      },
      {
        "label": "restore",
        "value": "restore"
      },
      {
        "label": "recover",
        "value": "recover"
      },
      {
        "label": "purge",
        "value": "purge"
      },
      {
        "label": "wrapKey",
        "value": "wrapKey"
      },
      {
        "label": "unwrapKey",
        "value": "unwrapKey"
      },
      {
        "label": "sign",
        "value": "sign"
      },
      {
        "label": "verify",
        "value": "verify"
      },
      {
        "label": "get",
        "value": "get"
      },
      {
        "label": "create",
        "value": "create"
      },
      {
        "label": "update",
        "value": "update"
      },
      {
        "label": "import",
        "value": "import"
      }
    ]
  },
  "visible": true
},
{
  "name": "secretsPermissions",
  "type": "Microsoft.Common.DropDown",
  "label": "Secrets Permissions",
  "multiselect": true,
  "defaultValue":{
    "value": "list"
  },
  "toolTip": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge.",
  "constraints": {
    "required": false,
    "allowedValues":[
      {
        "label": "all",
        "value": "all"
      },
      {
        "label": "get",
        "value": "get"
      },
      {
        "label": "list",
        "value": "list"
      },
      {
        "label": "set",
        "value": "set"
      },
      {
        "label": "delete",
        "value": "delete"
      },
      {
        "label": "backup",
        "value": "backup"
      },
      {
        "label": "restore",
        "value": "restore"
      },
      {
        "label": "recover",
        "value": "recover"
      },
      {
        "label": "purge",
        "value": "purge"
      }
    ]
  },
  "visible": true
}

Vytvořte novou verzi specifikace šablony.

Pomocí PowerShellu:

New-AzTemplateSpec `
  -name keyvaultspec `
  -version 2 `
  -ResourceGroupName templateSpecRG `
  -location westus2 `
  -templatefile keyvault.json `
  -UIFormDefinitionFile keyvaultform.json

Nebo Azure CLI:

az ts create \
  --name keyvaultspec \
  --version 2 \
  --resource-group templatespecRG \
  --location westus2 \
  --template-file keyvault.json \
  --ui-form-definition keyvaultform.json

Znovu nasaďte specifikaci šablony pomocí vylepšeného formuláře portálu.

Snímek obrazovky s formulářem webu Azure Portal pro zadání hodnot specifikace šablony

Všimněte si, že pole oprávnění jsou teď rozevírací seznamy, které umožňují více hodnot.

Další kroky

Další informace o nasazení specifikace šablony jako propojené šablony najdete v tématu Kurz: Nasazení specifikace šablony jako propojené šablony.