Поделиться через


Элемент пользовательского интерфейса Microsoft.Solutions.ArmApiControl

Элемент ArmApiControl получает результаты из операции API Azure Resource Manager с помощью методов GET или POST. Эти результаты вы можете использовать для заполнения динамического содержимого в других элементах управления.

Пример элемента пользовательского интерфейса

Для 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 для получения массива объектов поставщика.

В свойстве allowedValues элемента providersDropDown указано, что нужно использовать массива и получать имена поставщиков. Имена поставщиков отображаются в раскрывающемся списке.

Свойство providerName из output содержит имя поставщика, выбранное в раскрывающемся списке. Эти выходные данные можно использовать для передачи значения параметру в шаблоне 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')]"
    }
  }
}

Однострочный пример Microsoft.Common.TextBox демонстрирует ArmApiControl, в котором используется свойство request.body. В этом примере проверяется доступность имени учетной записи хранения, а если оно недоступно, возвращается соответствующее сообщение.

Следующие шаги