Share via


Microsoft.Solutions.ArmApiControl UI 元素

ArmApiControl 會使用 GET 或 POST 從 Azure Resource Manager API 作業取得結果。 您可以使用結果來填入其他控制項中的動態內容。

UI 範例

沒有適用於 ArmApiControl 的使用者介面。

結構描述

下列範例顯示控制項的結構描述。

{
  "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 必須是 Azure Resource Manager 端點的相對路徑。 它可以是靜態路徑,也可以藉由參考其他控制項的輸出值來動態建立。

    例如,Azure Resource Manager 會呼叫 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 Resource Manager 範本中的參數。

{
  "$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 單行範例。 該範例會檢查儲存體帳戶名稱的可用性,並在該名稱無法使用時傳回訊息。

下一步