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 の単一行の例を参照してください。 この例では、ストレージ アカウント名が使用可能かどうかを確認し、名前が使用できない場合はメッセージを返します。
次のステップ
- UI 定義作成の概要については、「Azure マネージド アプリケーションの作成エクスペリエンスのための CreateUiDefinition.json」を参照してください。
- UI 要素の共通プロパティの説明については、「CreateUiDefinition の要素」を参照してください。
map
、basics
、parse
などの関数の詳細については、「CreateUiDefinition 関数」を参照してください。