다음을 통해 공유


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 속성은 Azure Resource Manager 엔드포인트에 대한 상대 경로여야 하는 URL을 지정합니다. 고정 경로일 수도 있고 다른 컨트롤의 출력 값을 참조하여 동적으로 생성될 수도 있습니다.

    예를 들어 Azure Resource Manager는 Microsoft.Network/expressRouteCircuits 리소스 공급자를 호출합니다.

    "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 한 줄 예제를 참조하세요. 이 예제에서는 스토리지 계정 이름의 가용성을 확인하고 이름을 사용할 수 없는 경우 메시지를 반환합니다.

다음 단계