Condividi tramite


Elemento dell'interfaccia utente Microsoft.Solutions.ArmApiControl

ArmApiControl ottiene i risultati da un'operazione API di Azure Resource Manager con GET o POST. È possibile usare i risultati per popolare il contenuto dinamico in altri controlli.

Esempio di interfaccia utente

Non esiste un'interfaccia utente per ArmApiControl.

Schema

L'esempio seguente illustra lo schema del controllo.

{
  "name": "testApi",
  "type": "Microsoft.Solutions.ArmApiControl",
  "request": {
    "method": "{HTTP-method}",
    "path": "{path-for-the-URL}",
    "body": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

Output di esempio

L'output del controllo non viene visualizzato all'utente. I risultati dell'operazione vengono invece usati in altri controlli.

Osservazioni:

  • La proprietà request.method specifica il metodo HTTP. Sono consentiti solo GET o POST.

  • La proprietà request.path specifica un URL che deve essere un percorso relativo di un endpoint di Azure Resource Manager. Può essere un percorso statico o può essere costruito in modo dinamico facendo riferimento ai valori di output degli altri controlli.

    Ad esempio, una chiamata di Azure Resource Manager al provider di risorse Microsoft.Network/expressRouteCircuits.

    "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
    
  • La proprietà request.body è facoltativa. Usarlo per specificare un corpo JSON inviato con la richiesta. Il corpo può essere contenuto statico o costruito in modo dinamico facendo riferimento ai valori di output di altri controlli.

Esempio

Nell'esempio seguente l'elemento providersApi usa ArmApiControl e chiama un'API per ottenere una matrice di oggetti provider.

La proprietà allowedValues dell'elemento providersDropDown è configurata per usare la matrice e ottenere i nomi dei provider. I nomi dei provider vengono visualizzati nell'elenco a discesa.

La proprietà providerName di output mostra il nome del provider selezionato nell'elenco a discesa. L'output può essere usato per passare il valore a un parametro in un modello di 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')]"
    }
  }
}

Per un esempio di ArmApiControl che usa la proprietà request.body, vedere l'esempio a riga singola Microsoft.Common.TextBox. Questo esempio verifica la disponibilità di un nome di account di archiviazione e restituisce un messaggio se il nome non è disponibile.

Passaggi successivi