Microsoft.Solutions.ArmApiControl UI 要素

ArmApiControl は、GET または POST を使用した Azure Resource Manager API 操作の結果を取得します。 その結果を使用して、他のコントロールに動的コンテンツを設定できます。

UI サンプル

ArmApiControl 用の UI はありません。

スキーマ

次の例は、コントロールのスキーマを示しています。

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

サンプル出力

このコントロールの出力は、ユーザーには表示されません。 代わりに、操作の結果が他のコントロールで使用されます。

解説

  • request.method プロパティでは、HTTP メソッドを指定します。 GET または POST のみが許可されます。

  • request.path プロパティは URL を指定します。これは、Azure Resource Manager エンドポイントへの相対パスである必要があります。 これは、静的パスにすることも、他のコントロールの出力値を参照して動的に構築することもできます。

    たとえば、Microsoft.Network/expressRouteCircuits リソース プロバイダーへの Azure Resource Manager 呼び出しです。

    "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
    
  • request.body プロパティは省略可能です。 これを使用して、要求と共に送信される JSON 本文を指定します。 本文は、静的コンテンツにすることも、他のコントロールからの出力値を参照して動的に構築することもできます。

次の例では、providersApi 要素は ArmApiControl を使用し、API を呼び出してプロバイダー オブジェクトの配列を取得します。

providersDropDown 要素の allowedValues プロパティは、その配列を使用してプロバイダー名を取得するように構成されています。 プロバイダー名がドロップダウン リストに表示されます。

output プロパティ providerName は、ドロップダウン リストから選択されたプロバイダー名を表示します。 出力を使用すると、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')]"
    }
  }
}

request.body プロパティを使用する ArmApiControl の例については、Microsoft.Common.TextBox の単一行の例を参照してください。 この例では、ストレージ アカウント名が使用可能かどうかを確認し、名前が使用できない場合はメッセージを返します。

次のステップ