자습서: Azure Portal에서 내보낸 템플릿 사용

이 자습서 시리즈에서는 Azure Storage 계정을 배포하기 위한 템플릿을 만듭니다. 다음 두 자습서에서는 App Service 계획웹 사이트를 추가합니다. 템플릿을 처음부터 생성하는 대신 Azure Portal에서 템플릿을 내보내는 방법과 Azure 빠른 시작 템플릿에서 샘플 템플릿을 사용하는 방법을 알아봅니다. 이러한 템플릿을 용도에 맞게 사용자 지정합니다. 이 자습서에서는 템플릿 내보내기 및 템플릿 결과 사용자 지정에 중점을 둡니다. 이 지침을 완료하는 데 14분이 걸립니다.

필수 조건

출력에 대한 자습서를 완료하는 것이 좋지만 필수는 아닙니다.

Resource Manager 도구 확장과 Azure PowerShell 또는 Azure CLI(명령줄 인터페이스)가 있는 Visual Studio Code가 있어야 합니다. 자세한 내용은 템플릿 도구를 참조하세요.

템플릿 검토

이전 자습서의 끝 부분에 템플릿에는 다음 JSON 파일이 있습니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

이 템플릿은 스토리지 계정 배포에 적합하지만 더 많은 리소스를 추가할 수 있습니다. 기존 리소스에서 템플릿을 내보내서 해당 리소스의 JSON을 빠르게 가져올 수 있습니다.

App Service 플랜 만들기

  1. Azure Portal에 로그인합니다.

  2. 리소스 만들기를 선택합니다.

  3. 검색 서비스 및 Marketplace에서 App Service 요금제을 입력한 다음 App Service 요금제을 선택합니다.

  4. 만들기를 실행합니다.

  5. App Service 요금제 만들기 페이지에서 다음을 입력합니다.

    • 구독: 드롭다운 메뉴에서 Azure 구독을 선택합니다.
    • 리소스 그룹: 새로 만들기를 선택하고 이름을 입력합니다. 이 자습서 시리즈에서 사용한 것과 다른 리소스 그룹 이름을 제공합니다.
    • 이름: App Service 계획의 이름을 입력합니다.
    • 운영 체제: Linux를 선택합니다.
    • 지역: 드롭다운 메뉴에서 Azure 위치(예: 미국 중부)를 선택합니다.
    • 가격 책정 계층: 비용을 절약하려면 덜 까다로운 워크로드를 위해 크기 변경을 선택하여 개발/테스트에서 SKU 및 크기첫 번째 기본(B1)으로 변경합니다.

    Screenshot of the Create App Service Plan page in the Azure portal.

  6. 검토 및 만들기를 선택합니다.

  7. 만들기를 실행합니다. 리소스를 만드는 데 몇 분 정도 걸립니다.

템플릿 내보내기

  1. 리소스로 이동을 선택합니다.

    Screenshot of the Go to resource button in the Azure portal.

  2. 왼쪽 메뉴의 Automation에서 템플릿 내보내기를 선택합니다.

    Screenshot of the Export template option in the Azure portal.

    템플릿 내보내기 기능은 리소스의 현재 상태를 가져와서 해당 리소스를 배포할 템플릿을 생성합니다. 템플릿을 내보내면 리소스를 배포하는 데 필요한 JSON을 신속하게 가져올 수 있습니다.

  3. 내보낸 템플릿에서 Microsoft.Web/serverfarms 정의와 매개 변수 정의를 확인합니다. 이러한 섹션은 복사할 필요가 없습니다. 이 내보낸 템플릿은 템플릿에 이 리소스를 추가하는 방법의 예제로만 사용할 수 있습니다.

    Screenshot of the exported template JSON code in the Azure portal.

Important

일반적으로 내보낸 템플릿은 템플릿을 만들 때 필요한 것보다 더 자세한 정보를 포함합니다. 예를 들어 내보낸 템플릿의 SKU 개체에는 5개의 속성이 있습니다. 이 템플릿도 괜찮지만 name 속성만 사용할 수 있습니다. 내보낸 템플릿으로 시작한 다음, 요구 사항에 맞게 원하는 대로 수정할 수 있습니다.

기존 템플릿 수정

내보낸 템플릿에는 필요한 JSON이 대부분 제공되지만 템플릿에 맞게 사용자 지정해야 합니다. 사용자의 템플릿과 내보낸 템플릿 간에 매개 변수와 변수의 차이점에 특히 주의해야 합니다. 물론, 내보내기 프로세스는 템플릿에 이미 정의해 놓은 매개 변수와 변수를 알지 못합니다.

다음 예제는 템플릿에 추가된 내용을 강조 표시합니다. 여기에는 내보낸 코드와 일부 변경 내용이 포함됩니다. 첫째, 매개 변수 이름을 명명 규칙과 일치하도록 변경합니다. 둘째, 위치 매개 변수를 App Service 계획의 위치에 사용합니다. 셋째, 기본값이 적절한 속성 중 일부를 제거합니다.

전체 파일을 복사하고 템플릿을 해당 콘텐츠로 바꿉니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

템플릿 배포

Azure CLI 또는 Azure PowerShell을 사용하여 템플릿을 배포합니다.

리소스 그룹을 만들지 않은 경우 리소스 그룹 만들기를 참조하세요. 이 예제에서는 첫 번째 자습서에 표시된 대로 templateFile 변수를 템플릿 파일의 경로로 설정했다고 가정합니다.

New-AzResourceGroupDeployment `
  -Name addappserviceplan `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

참고 항목

배포에 실패한 경우 verbose 스위치를 사용하여 생성 중인 리소스에 대한 정보를 가져옵니다. 디버깅에 대한 자세한 정보를 보려면 debug 스위치를 사용합니다.

배포 확인

Azure Portal에서 리소스 그룹을 탐색하여 배포를 확인할 수 있습니다.

  1. Azure Portal에 로그인합니다.
  2. 왼쪽 메뉴에서 리소스 그룹을 선택합니다.
  3. 배포한 리소스 그룹을 선택합니다.
  4. 리소스 그룹에는 스토리지 계정과 App Service 계획이 포함됩니다.

리소스 정리

다음 자습서로 이동하는 경우에는 리소스 그룹을 삭제할 필요가 없습니다.

지금 중지하는 경우 리소스 그룹을 삭제하는 것이 좋습니다.

  1. Azure Portal의 왼쪽 메뉴에서 리소스 그룹을 선택합니다.
  2. 모든 필드에 대한 필터... 텍스트 필드에 리소스 그룹 이름을 입력합니다.
  3. myResourceGroup 옆에 있는 확인란을 선택하고 myResourceGroup 또는 리소스 그룹 이름을 선택합니다.
  4. 위쪽 메뉴에서 리소스 그룹 삭제를 선택합니다.

다음 단계

Azure Portal에서 템플릿을 내보내는 방법과 내보낸 템플릿을 템플릿 개발에 사용하는 방법을 알아보았습니다. Azure 빠른 시작 템플릿을 사용하여 템플릿 개발을 간소화할 수도 있습니다.