Elemento da interface do usuário Microsoft.Solutions.ArmApiControl
O ArmApiControl
obtém resultados de uma operação de API do Azure Resource Manager usando GET ou POST. Você pode usar os resultados para preencher conteúdo dinâmico em outros controles.
Exemplo de interface do usuário
Não há interface do usuário para ArmApiControl
o .
Esquema
O exemplo a seguir mostra o esquema do controle.
{
"name": "testApi",
"type": "Microsoft.Solutions.ArmApiControl",
"request": {
"method": "{HTTP-method}",
"path": "{path-for-the-URL}",
"body": {
"key1": "value1",
"key2": "value2"
}
}
}
Saída de exemplo
A saída do controle não é exibida para o usuário. Em vez disso, os resultados da operação são usados em outros controles.
Observações
A
request.method
propriedade especifica o método HTTP. Apenas GET ou POST são permitidos.A
request.path
propriedade especifica uma URL que deve ser um caminho relativo para um ponto de extremidade do Azure Resource Manager. Pode ser um caminho estático ou pode ser construído dinamicamente referindo valores de saída dos outros controles.Por exemplo, uma chamada do Azure Resource Manager para o
Microsoft.Network/expressRouteCircuits
provedor de recursos."path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
A
request.body
propriedade é opcional. Use-o para especificar um corpo JSON que é enviado com a solicitação. O corpo pode ser conteúdo estático ou construído dinamicamente, referindo-se a valores de saída de outros controles.
Exemplo
No exemplo a seguir, o providersApi
elemento usa o ArmApiControl
e chama uma API para obter uma matriz de objetos de provedor.
A providersDropDown
propriedade do allowedValues
elemento é configurada para usar a matriz e obter os nomes do provedor. Os nomes dos provedores são exibidos na lista suspensa.
A output
propriedade providerName
mostra o nome do provedor que foi selecionado na lista suspensa. A saída pode ser usada para passar o valor para um parâmetro em um modelo do 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 obter um exemplo do que usa a request.body
propriedade, consulte o exemplo de ArmApiControl
linha única Microsoft.Common.TextBox. Esse exemplo verifica a disponibilidade de um nome de conta de armazenamento e retorna uma mensagem se o nome não estiver disponível.
Próximos passos
- Para obter uma introdução à criação de definições de interface do usuário, consulte CreateUiDefinition.json para a experiência de criação do aplicativo gerenciado do Azure.
- Para obter uma descrição das propriedades comuns em elementos da interface do usuário, consulte Elementos CreateUiDefinition.
- Para saber mais sobre funções como
map
,basics
eparse
, consulte Funções CreateUiDefinition.