Elemento de UI Microsoft.Solutions.ArmApiControl
ArmApiControl
Obtiene los resultados de una operación de API de Azure Resource Manager mediante GET o POST. Puede usar los resultados para rellenar el contenido dinámico en otros controles.
Ejemplo de interfaz de usuario
No hay ninguna interfaz de usuario para ArmApiControl
.
Schema
En el ejemplo siguiente se muestra el esquema del control.
{
"name": "testApi",
"type": "Microsoft.Solutions.ArmApiControl",
"request": {
"method": "{HTTP-method}",
"path": "{path-for-the-URL}",
"body": {
"key1": "value1",
"key2": "value2"
}
}
}
Salida de ejemplo
La salida del control no se muestra al usuario. En su lugar, los resultados de la operación se usan en otros controles.
Observaciones
La propiedad
request.method
especifica el método HTTP. Solo se permiten GET o POST.La propiedad
request.path
especifica una dirección URL que debe ser una ruta de acceso relativa a un punto de conexión de Azure Resource Manager. Puede ser una ruta de acceso estática o se puede crear dinámicamente mediante la referencia a los valores de salida de los demás controles.Por ejemplo, una llamada de Azure Resource Manager al proveedor de recursos
Microsoft.Network/expressRouteCircuits
."path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
La propiedad
request.body
es opcional. Úsela para especificar un cuerpo JSON que se enviará con la solicitud. Puede ser un cuerpo estático o se puede crear dinámicamente si se hace referencia a los valores de salida de otros controles.
Ejemplo
En el ejemplo siguiente, el elemento providersApi
usa ArmApiControl
y llama a una API para obtener una matriz de objetos de proveedor.
La propiedad allowedValues
del elemento providersDropDown
está configurada para usar la matriz y obtener los nombres de proveedor. Los nombres de proveedor se muestran en la lista desplegable.
La propiedad providerName
de output
muestra el nombre del proveedor seleccionado en la lista desplegable. La salida se puede usar para pasar el valor a un parámetro en una plantilla de 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')]"
}
}
}
Para ver un ejemplo del objeto ArmApiControl
que usa la propiedad request.body
, consulte el ejemplo de línea única Microsoft.Common.TextBox. En ese ejemplo se comprueba la disponibilidad de un nombre de cuenta de almacenamiento y se devuelve un mensaje si el nombre no está disponible.
Pasos siguientes
- Para ver una introducción sobre cómo crear definiciones de UI, consulte CreateUiDefinition.json para la experiencia de creación de aplicaciones administradas de Azure.
- Para ver una descripción de las propiedades comunes de los elementos de interfaz de usuario, consulte Elementos CreateUiDefinition.
- Para obtener más información sobre funciones como
map
,basics
yparse
, consulte Funciones CreateUiDefinition.