Elemento de 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. Use os resultados para popular o conteúdo dinâmico em outros controles.
Exemplo de interface do usuário
Não há interface do usuário para ArmApiControl
.
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. Nesse caso, o resultados da operação são usados em outros controles.
Comentários
A
request.method
propriedade especifica o método HTTP. Somente GET ou POST são permitidos.A propriedade
request.path
especifica uma URL que precisa ser um caminho relativo para um ponto de extremidade do Azure Resource Manager. Ele pode ser um caminho estático ou pode ser construído dinamicamente consultando valores de saída dos outros controles.Por exemplo, uma chamada do Azure Resource Manager para o provedor de recursos
Microsoft.Network/expressRouteCircuits
."path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
A propriedade
request.body
é opcional. Use-o para especificar um corpo JSON 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 elemento providersApi
usa o ArmApiControl
e chama uma API para obter uma matriz de objetos de provedor.
A propriedade allowedValues
do elemento providersDropDown
é configurada para usar a matriz e obter os nomes de provedores. Os nomes de provedores são exibidos na lista suspensa.
A propriedade providerName
de output
mostra o nome do provedor selecionado na lista suspensa. A saída pode ser usada para passar o valor a 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 ArmApiControl
que usa a propriedade request.body
, confira o exemplo de linha única Microsoft.Common.TextBox. Esse exemplo verifica a disponibilidade de um nome de conta de armazenamento e retorna uma mensagem quando o nome não está disponível.
Próximas etapas
- Veja uma introdução ao desenvolvimento da interface do portal em CreateUiDefinition.json para a experiência de criação do aplicativo gerenciado do Azure.
- Para obter uma descrição das propriedades comuns em elementos de interface do usuário, consulte Elementos de CreateUiDefinition.
- Para saber mais sobre funções como
map
,basics
eparse
, confira funções CreateUiDefinition.