Элемент пользовательского интерфейса 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
. В этом примере проверяется доступность имени учетной записи хранения, а если оно недоступно, возвращается соответствующее сообщение.
Следующие шаги
- Общие сведения о создании определений пользовательского интерфейса см. в статье Использование CreateUiDefinition.jsоn при создании управляемого приложения Azure.
- Дополнительные сведения об общих свойствах элементов пользовательского интерфейса см. в статье Элементы CreateUiDefinition.
- Дополнительные сведения о
map
,basics
,parse
и других похожих функциях см. в статье Функции CreateUiDefinition.