Microsoft。Common.ResourceScope UI 元素

ResourceScope用户界面(UI)元素允许用户选择部署的订阅、资源组和位置。 在表单视图中,用它来实现资源组的通用部署流程。

ResourceScope 是表单视图特有的。 在 createUiDefinition.json中,订阅、资源组和位置则由隐式的基础步骤提供。

UI 示例

ResourceScope 元素渲染部署范围的项目细节字段,包括订阅、资源组和区域。

Schema

{
  "name": "resourceScope",
  "type": "Microsoft.Common.ResourceScope",
  "subscription": {
    "resourceProviders": [
      "Microsoft.KeyVault"
    ]
  },
  "resourceGroup": {
    "allowExisting": true
  },
  "resourceName": {
    "label": "Key vault name",
    "toolTip": "Enter a globally unique key vault name.",
    "constraints": {
      "validations": [
        {
          "regex": "^[a-zA-Z0-9-]{3,24}$",
          "message": "The name must be 3-24 characters long and contain only letters, numbers, and hyphens."
        }
      ]
    }
  },
  "location": {
    "label": "Region",
    "toolTip": "Select the Azure region for the resource.",
    "resourceTypes": [
      "Microsoft.KeyVault/vaults"
    ]
  }
}

示例输出

{
  "subscription": {
    "displayName": "Contoso subscription",
    "subscriptionId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "11111111-1111-1111-1111-111111111111"
  },
  "resourceGroup": {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg",
    "name": "example-rg",
    "location": "chinanorth2"
  },
  "location": {
    "name": "chinanorth2",
    "displayName": "China North 2"
  },
  "resourceName": "example-vault"
}

Remarks

  • subscription.resourceProviders 筛选可选订阅至列出的供应商可用的订阅。
  • resourceGroup.allowExisting 控制用户是否可以选择已有的资源组。
  • resourceName 在范围选择器中添加资源名称字段。 用 resourceName.constraints.validations 来验证名称。
  • location.resourceTypes 将区域筛选到支持上述资源类型的地点。
  • 用 引用选定的资源组 ID [steps('basics').resourceScope.resourceGroup.id]
  • 用 来引用选定的位置名称 [steps('basics').resourceScope.location.name]
  • 引用资源名称。[steps('basics').resourceScope.resourceName]

对于资源组部署,请使用以下 view.outputs选定范围:

"outputs": {
  "kind": "ResourceGroup",
  "resourceGroupId": "[steps('basics').resourceScope.resourceGroup.id]",
  "location": "[steps('basics').resourceScope.location.name]",
  "parameters": {
    "name": "[steps('basics').resourceScope.resourceName]",
    "location": "[steps('basics').resourceScope.location.name]"
  }
}

后续步骤