Partage via


Microsoft.Solutions.ArmApiControl UI element

ArmApiControl obtient les résultats d’une opération d’API Azure Resource Manager à l’aide de GET ou POST. Vous pouvez utiliser les résultats pour remplir du contenu dynamique dans d’autres contrôles.

Exemple d’interface utilisateur

Il n’existe pas d’IU pour ArmApiControl.

schéma

L’exemple suivant montre le schéma du contrôle.

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

Exemple de sortie

La sortie du contrôle ne s’affiche pas pour l’utilisateur. À la place, les résultats de l’opération sont utilisés dans d’autres contrôles.

Notes

  • La propriété request.method spécifie la méthode HTTP. Seuls GET ou POST sont autorisés.

  • La propriété request.path spécifie une URL qui doit être un chemin relatif vers un point de terminaison Azure Resource Manager. Il peut s’agir d’un chemin d’accès statique ou être construit dynamiquement en faisant référence aux valeurs de sortie des autres contrôles.

    Par exemple, un appel Azure Resource Manager au fournisseur de ressources Microsoft.Network/expressRouteCircuits.

    "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
    
  • La propriété request.body est facultative. Utilisez-la pour spécifier un corps JSON envoyé avec la requête. Le corps peut être du contenu statique ou être construit dynamiquement en faisant référence aux valeurs de sortie d’autres contrôles.

Exemple

Dans l’exemple suivant, l’élément providersApi utilise ArmApiControl et appelle une API pour obtenir un tableau d’objets fournisseur.

La propriété allowedValues de l’élément providersDropDown est configurée pour utiliser le tableau et obtenir les noms des fournisseurs. Les noms des fournisseurs s’affichent dans la liste déroulante.

La propriété providerName de output affiche le nom du fournisseur sélectionné dans la liste déroulante. La sortie peut être utilisée pour passer la valeur à un paramètre dans un modèle 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')]"
    }
  }
}

Pour obtenir un exemple de ArmApiControl qui utilise la propriété request.body, consultez l’exemple de zone de texte monoligne de Microsoft.Common.TextBox. Cet exemple vérifie la disponibilité d’un nom de compte de stockage, et retourne un message si le nom n’est pas disponible.

Étapes suivantes