Compartir a través de


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