Compartilhar via


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