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
- Per un'introduzione alla creazione di definizioni dell'interfaccia utente, vedere CreateUiDefinition.json per l'esperienza di creazione di un'applicazione gestita di Azure.
- Per una descrizione delle proprietà comuni negli elementi dell'interfaccia utente, vedere Elementi di CreateUiDefinition.
- Per altre informazioni su funzioni come
map
,basics
eparse
, vedere Funzioni CreateUiDefinition.