フォーム ビューは、Azure ポータルの作成エクスペリエンスの JSON の説明です。 Azure ポータルでは、実行時に JSON からフォームがレンダリングされます。書き込むクライアント コードはありません。 フォーム ビューは uiFormDefinition.json 形式を使用し、 テンプレート スペック ポータル フォームで使用されます。 Azure Managed Applications別の createUiDefinition.json 形式を使用します。
最小ファイルは次のようになります。
{
"$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#",
"view": {
"kind": "Form",
"properties": {
"title": "Create my resource",
"steps": []
},
"outputs": {
"kind": "ResourceGroup",
"resourceGroupId": "",
"location": "",
"parameters": {}
}
}
}
フォーム ビューには常に次の情報があります。
| フィールド | 必須 | 説明 |
|---|---|---|
$schema |
推奨 | IntelliSense の 2021-09-09/uiFormDefinition.schema.json スキーマをピン留めします。 |
view.kind |
はい |
"Form"である必要があります。 |
view.properties.title |
はい | フォームの上に表示されるページ タイトル。 |
view.properties.steps |
はい | 1 つ以上のステップ (タブ)。 「 手順」を参照してください。 |
view.outputs |
はい (デプロイ時) | デプロイ コンテキスト : デプロイターゲットのサブスクリプション、リソース グループ、管理グループ、テナント、およびAzure Resource Manager テンプレート パラメーター値。 「出力」を参照してください。 |
手順
steps は順序付けられた配列です。 各ステップはタブとしてレンダリングされます。ユーザーは 、[次へ] と [ 前へ] のステップ間を移動します。
"steps": [
{
"name": "basics",
"label": "Basics",
"description": "Provide the basic settings for the resource.",
"elements": [
{
"name": "name",
"type": "Microsoft.Common.TextBox",
"label": "Resource name",
"toolTip": "Provide a unique name.",
"constraints": {
"required": true,
"regex": "^[a-z0-9]{3,24}$",
"validationMessage": "3-24 lowercase letters or digits."
}
}
]
}
]
各手順には次の内容があります。
| フィールド | 必須 | 説明 |
|---|---|---|
name |
はい | ステップ ID。 式内で steps('<name>') として参照します。 |
label |
はい | タブ タイトル。 |
description |
いいえ | タブ タイトルの下に表示される説明 (省略可能)。 |
elements |
はい | フォーム コントロールの配列。 「フォーム ビューの要素」を参照してください。 |
ステップをオーバーロードするのではなく、関連するフィールドを Microsoft.Common.Section でグループ化します。 セクションは入れ子にできません。
出力 (デプロイ コンテキスト)
フォーム ビューを使用してAzure Resource Manager テンプレート (一般的なケース) を展開する場合、view.outputsは配置コンテキストです。 ポータルはこれを使用して、デプロイする場所と、テンプレートに渡すパラメーター値を把握します。 4 つの kind 値がサポートされています。
kind |
必須フィールド | 次の場合に使用されます。 |
|---|---|---|
ResourceGroup |
resourceGroupId、location、parameters |
ほとんどのリソース。 リソース グループにデプロイします。 |
Subscription |
subscriptionId、location、parameters |
テンプレートの $schema は subscriptionDeploymentTemplate.json。 |
ManagementGroup |
managementGroupId、location、parameters |
テンプレートの $schema は managementGroupDeploymentTemplate.json。 |
Tenant |
location、parameters |
テンプレートの $schema は tenantDeploymentTemplate.json。 |
parameters キーは、1:1 を ARM テンプレート パラメーターにマップします。 通常、値はステップ出力を読み取る式です。
リソース グループデプロイの場合、パブリック スキーマは Microsoft.Common.ResourceScopeをサポートし、 テンプレート スペック用のポータル フォームの作成 チュートリアルでは、一般的なサブスクリプション、リソース グループ、および場所の選択フローに使用します。 次の例では、basics ステップに Microsoft.Common.ResourceScope という名前のresourceScope要素が含まれていることを前提としています。 これは、フォームにデプロイ スコープからサブスクリプションと場所を推測するコントロール ( Microsoft.Compute.SizeSelector など) が含まれている場合にも、最も安全な既定値です。
"outputs": {
"kind": "ResourceGroup",
"resourceGroupId": "[steps('basics').resourceScope.resourceGroup.id]",
"location": "[steps('basics').resourceScope.location.name]",
"parameters": {
"keyVaultName": "[steps('basics').name]",
"location": "[steps('basics').resourceScope.location.name]",
"sku": "[steps('keyvault').sku]"
}
}
フォームで、Microsoft.Common.SubscriptionSelector の代わりにスタンドアロンの Microsoft.Common.ResourceGroupSelector、Microsoft.Common.LocationSelector、および Microsoft.Common.ResourceScope 要素を使用する場合は、スコープ対応コントロールが scope プロパティを介して、選択したサブスクリプションと場所に明示的にバインドされるようにしてください。
Expressions
フォーム "[ ... ]" の文字列は式として評価されます。 関数は、 CreateUiDefinition 関数に関して説明されているのと同じセットです。
| Function | 返品 |
|---|---|
steps('<stepName>') |
名前付きステップのすべてのコントロール出力を保持するオブジェクト。 |
basics('<elementName>') |
従来の 基本 ステップの要素の出力 (CreateUiDefinition のみ)。 |
equals、not、and、or、if、coalesce、empty |
論理ヘルパー。 |
concat、 split、 substring、 indexOf、 toLower、 toUpper、 last、 first |
文字列ヘルパーと配列ヘルパー。 |
length、min、max、add、sub、mul、div |
数値ヘルパー。 |
subscription()、resourceGroup()、location() |
選択したスコープ。 |
コントロール内では、 visible、 defaultValue、およびほとんどの constraints.* フィールドは、リテラルまたは式を受け入れます。
ローカリゼーション
ユーザー向けの文字列は、(上の例のように) リテラルとしてインライン化できます。
オーサリングツール
フォーム ビュー サンドボックスでは、ARM テンプレートから既定のフォームを生成し、結果をプレビューできます。 エンド ツー エンドのチュートリアルについては、 テンプレート スペックのポータル フォームの作成 を参照してください。
スキーマは、
https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.jsonで発行されます。 Visual Studio Codeで IntelliSense を有効にするには、フォーム ファイルの最上位$schema値としてスキーマ URL を追加します。{ "$schema": "https://schema.management.azure.com/schemas/2021-09-09/uiFormDefinition.schema.json#", "view": { "kind": "Form" } }Visual Studio Code でスキーマ ドメインを信頼するよう求められた場合は、Configure Trusted Domains を選択し、
https://schema.management.azure.comを追加します。 後でコマンド パレットから「 環境設定: 信頼されたドメインを設定する」を使用して追加することもできます。
次のステップ
- フォーム ビュー要素
- テンプレート スペックのポータル フォームを作成する
- CreateUiDefinition 関数 — フォーム ビュー式にも同じ関数が適用されます。