Benutzeroberflächenelement „Microsoft.Solutions.ArmApiControl“

ArmApiControl ruft Ergebnisse eines Azure Resource Manager-API-Vorgangs mithilfe von GET oder POST ab. Mit den Ergebnissen können Sie dynamische Inhalte in anderen Steuerelementen auffüllen.

Benutzeroberflächenbeispiel

Es gibt keine Benutzeroberfläche für ArmApiControl.

Schema

Das folgende Beispiel zeigt das Schema des Steuerelements.

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

Beispielausgabe

Die Ausgabe des Steuerelements wird dem Benutzer nicht angezeigt. Stattdessen werden die Ergebnisse des Vorgangs in anderen Steuerelementen verwendet.

Bemerkungen

  • Die request.method-Eigenschaft gibt die HTTP-Methode an. Nur GET oder POST sind zulässig.

  • Durch die Eigenschaft request.path wird eine URL angegeben, bei der es sich um einen relativen Pfad zu einem Azure Resource Manager-Endpunkt handeln muss. Dies kann ein statischer Pfad sein, oder er kann dynamisch erstellt werden, indem auf Ausgabewerte der anderen Steuerelemente verwiesen wird.

    Beispielsweise ein Azure Resource Manager-Aufruf an den Microsoft.Network/expressRouteCircuits-Ressourcenanbieter.

    "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
    
  • Die request.body-Eigenschaft ist optional. Verwenden Sie ihn, um einen JSON-Text anzugeben, der mit der Anforderung gesendet wird. Der Text kann statischer Inhalt sein, oder er kann dynamisch erstellt werden, indem auf Ausgabewerte anderer Steuerelemente verwiesen wird.

Beispiel

Im folgenden Beispiel verwendet das providersApi-Element ArmApiControl und ruft eine API auf, um ein Array von Anbieterobjekten zu erhalten.

Die allowedValues-Eigenschaft des providersDropDown-Elements ist für die Verwendung des Arrays und zum Abrufen der Anbieternamen konfiguriert. Die Anbieternamen werden in der Dropdownliste angezeigt.

Die output-Eigenschaft providerName zeigt den Anbieternamen an, der aus der Dropdownliste ausgewählt wurde. Die Ausgabe kann verwendet werden, um den Wert an einen Parameter in einer Azure Resource Manager-Vorlage zu übergeben.

{
  "$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')]"
    }
  }
}

Ein Beispiel für das ArmApiControl, das die request.body-Eigenschaft verwendet, finden Sie in dem einzeiligen Beispiel Microsoft.Common.TextBox. Mit diesem Beispiel wird die Verfügbarkeit eines Speicherkontonamens überprüft und eine Meldung zurückgegeben, wenn der Name nicht verfügbar ist.

Nächste Schritte