你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.Solutions.ArmApiControl UI element

ArmApiControl 使用 GET 或 POST 从 Azure 资源管理器 API 操作获取结果。 可以使用结果填充其他控件中的动态内容。

UI 示例

ArmApiControl 没有 UI。

架构

以下示例显示了控件的架构。

{
  "name": "testApi",
  "type": "Microsoft.Solutions.ArmApiControl",
  "request": {
    "method": "{HTTP-method}",
    "path": "{path-for-the-URL}",
    "body": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

示例输出

控件的输出不会显示给用户。 操作的结果将用于其他控件。

备注

  • request.method 属性指定 HTTP 方法。 仅允许使用 GET 或 POST。

  • request.path 属性指定一个 URL,该 URL 必须是指向 Azure 资源管理器终结点的相对路径。 它可以是静态路径,也可以通过引用其他控件的输出值来动态构造。

    例如,Azure 资源管理器对 Microsoft.Network/expressRouteCircuits 资源提供程序的调用。

    "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
    
  • request.body 属性为可选。 使用它指定与请求一起发送的 JSON 正文。 正文可以是静态内容,也可以通过引用其他控件的输出值来动态构造。

示例

在下面的示例中,providersApi 元素使用 ArmApiControl 并调用一个 API 来获取提供程序对象的数组。

providersDropDown 元素的 allowedValues 属性配置为使用此数组并获取提供程序名称。 提供程序名称显示在下拉列表中。

output 属性 providerName 显示从下拉列表中选择的提供程序名称。 输出可用于将值传递给 Azure 资源管理器模板中的参数。

{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
  "handler": "Microsoft.Azure.CreateUIDef",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [
      {
        "name": "providersApi",
        "type": "Microsoft.Solutions.ArmApiControl",
        "request": {
          "method": "GET",
          "path": "[concat(subscription().id, '/providers/Microsoft.Network/expressRouteServiceProviders?api-version=2022-01-01')]"
        }
      },
      {
        "name": "providerDropDown",
        "type": "Microsoft.Common.DropDown",
        "label": "Provider",
        "toolTip": "The provider that offers the express route connection.",
        "constraints": {
          "allowedValues": "[map(basics('providersApi').value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]",
          "required": true
        },
        "visible": true
      }
    ],
    "steps": [],
    "outputs": {
      "providerName": "[basics('providerDropDown')]"
    }
  }
}

有关使用 request.body 属性的 ArmApiControl 的示例,请参阅 Microsoft.Common.TextBox 单行示例。 该示例检查存储帐户名称的可用性,并在名称不可用时返回一条消息。

后续步骤