자습서: Azure Resource Manager 템플릿에서 조건 사용Tutorial: Use condition in Azure Resource Manager templates

조건에 따라 Azure 리소스를 배포하는 방법을 알아봅니다.Learn how to deploy Azure resources based on conditions.

리소스 배포 순서 설정 자습서에서는 가상 머신, 가상 네트워크 및 저장소 계정을 포함한 기타 종속 리소스를 만듭니다.In the Set resource deployment order tutorial, you create a virtual machine, a virtual network, and some other dependent resources including a storage account. 매번 새 저장소 계정을 만드는 대신, 사용자가 새 저장소 계정을 만들지, 기존 저장소 계정을 사용할지 선택하도록 할 수 있습니다.Instead of creating a new storage account every time, you let people choose between creating a new storage account and using an existing storage account. 이 목표를 달성하기 위해 추가 매개 변수를 정의합니다.To accomplish this goal, you define an additional parameter. 매개 변수의 값이 “new”인 경우 새 저장소 계정이 만들어집니다.If the value of the parameter is "new", a new storage account is created.

Resource Manager 템플릿 사용 조건 다이어그램

이 자습서에서 다루는 작업은 다음과 같습니다.This tutorial covers the following tasks:

  • 빠른 시작 템플릿 열기Open a QuickStart template
  • 템플릿 수정Modify the template
  • 템플릿 배포Deploy the template
  • 리소스 정리Clean up resources

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

필수 조건Prerequisites

이 문서를 완료하려면 다음이 필요합니다.To complete this article, you need:

빠른 시작 템플릿 열기Open a Quickstart template

Azure 퀵 스타트 템플릿은 Resource Manager 템플릿용 저장소입니다.Azure QuickStart Templates is a repository for Resource Manager templates. 템플릿을 처음부터 새로 만드는 대신 샘플 템플릿을 찾아서 사용자 지정할 수 있습니다.Instead of creating a template from scratch, you can find a sample template and customize it. 이 자습서에 사용되는 템플릿의 이름은 Deploy a simple Windows VM입니다.The template used in this tutorial is called Deploy a simple Windows VM.

  1. Visual Studio Code에서 파일>파일 열기를 차례로 선택합니다.From Visual Studio Code, select File>Open File.

  2. 파일 이름에서 다음 URL을 붙여넣습니다.In File name, paste the following URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json
    
  3. 열기를 선택하여 파일을 엽니다.Select Open to open the file.

  4. 템플릿에 5개 리소스가 정의되어 있습니다.There are five resources defined by the template:

    • Microsoft.Storage/storageAccounts.Microsoft.Storage/storageAccounts. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/publicIPAddresses.Microsoft.Network/publicIPAddresses. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/virtualNetworks.Microsoft.Network/virtualNetworks. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/networkInterfaces.Microsoft.Network/networkInterfaces. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Compute/virtualMachines.Microsoft.Compute/virtualMachines. 템플릿 참조를 참조하세요.See the template reference.

      템플릿을 사용자 지정하기 전에 템플릿의 몇 가지 기본적인 내용을 이해하면 유용합니다.It is helpful to get some basic understanding of the template before customizing it.

  5. 파일>다른 이름으로 저장을 선택하여 파일 복사본을 로컬 컴퓨터에 azuredeploy.json이라는 이름으로 저장합니다.Select File>Save As to save a copy of the file to your local computer with the name azuredeploy.json.

템플릿 수정Modify the template

기존 템플릿에서 두 가지를 변경합니다.Make two changes to the existing template:

  • 저장소 계정 이름 매개 변수를 추가합니다.Add a storage account name parameter. 사용자는 새 저장소 계정 이름 또는 기존 저장소 계정 이름을 지정할 수 있습니다.Users can specify either a new storage account name or an existing storage account name.
  • newOrExisting이라는 새 매개 변수를 추가합니다.Add a new parameter called newOrExisting. 배포에서는 이 매개 변수를 사용하여 새 저장소 계정을 만들 위치를 결정하거나 기존 저장소 계정을 사용합니다.The deployment uses this parameter to determine where to create a new storage account or use an existing storage account.

변경 절차는 다음과 같습니다.Here is the procedure to make the changes:

  1. Visual Studio Code에서 azuredeploy.json을 엽니다.Open azuredeploy.json in Visual Studio Code.

  2. 템플릿 전체에서 variables('storageAccountName')parameters('storageAccountName') 로 바꿉니다.Replace variables('storageAccountName') with parameters('storageAccountName') in the whole template. variables('storageAccountName') 에는 세 가지 모양이 있습니다.There are three appearances of variables('storageAccountName').

  3. 다음 변수 정의를 제거합니다.Remove the following variable definition:

    "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",
    
  4. 다음 두 매개 변수를 템플릿에 추가합니다.Add the following two parameters to the template:

    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string", 
      "allowedValues": [
        "new", 
        "existing"
      ]
    },
    

    업데이트된 매개 변수 정의는 다음과 같습니다.The updated parameters definition looks like:

    Resource Manager 사용 조건

  5. 저장소 계정 정의의 시작 부분에 다음 줄을 추가합니다.Add the following line to the beginning of the storage account definition.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

    조건은 newOrExisting이라는 매개 변수의 값을 확인합니다.The condition checks the value of a parameter called newOrExisting. 매개 변수 값이 new이면 배포에서 저장소 계정을 만듭니다.If the parameter value is new, the deployment creates the storage account.

    업데이트된 저장소 계정 정의는 다음과 같습니다.The updated storage account definition looks like:

    Resource Manager 사용 조건

  6. 다음 값으로 storageUri를 업데이트합니다.Update storageUri with the following value:

    "storageUri": "[concat('https://', parameters('storageAccountName'), '.blob.core.windows.net')]"
    

    다른 리소스 그룹에서 기존 저장소 계정을 사용하는 경우 이 변경은 필요합니다.This change is necessary when you use an existing storage account under a different resource group.

  7. 변경 내용을 저장합니다.Save the changes.

템플릿 배포Deploy the template

참고

이 문서는 새 Azure PowerShell Az 모듈을 사용하도록 업데이트되었습니다.This article has been updated to use the new Azure PowerShell Az module. AzureRM 모듈은 적어도 2020년 12월까지 버그 수정을 수신할 예정이므로 계속 사용하셔도 됩니다.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 새 Az 모듈 및 AzureRM 호환성에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az 모듈 설치 지침은 Azure PowerShell 설치를 참조하세요.For Az module installation instructions, see Install Azure PowerShell.

템플릿 배포의 지침에 따라 템플릿을 배포합니다.Follow the instructions in Deploy the template to deploy the template.

Azure PowerShell을 사용하여 템플릿을 배포할 때 추가 매개 변수를 하나 지정해야 합니다.When you deploy the template using Azure PowerShell, you need to specify one additional parameter. 보안을 강화하려면 가상 머신 관리자 계정에 생성된 암호를 사용합니다.To increase security, use a generated password for the virtual machine administrator account. 필수 조건을 참조하세요.See Prerequisites.

$resourceGroupName = Read-Host -Prompt "Enter the resource group name"
$storageAccountName = Read-Host -Prompt "Enter the storage account name"
$newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)"
$location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)"
$vmAdmin = Read-Host -Prompt "Enter the admin username"
$vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
$dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -adminUsername $vmAdmin `
    -adminPassword $vmPassword `
    -dnsLabelPrefix $dnsLabelPrefix `
    -storageAccountName $storageAccountName `
    -newOrExisting $newOrExisting `
    -TemplateFile "$HOME/azuredeploy.json"

참고

newOrExistingnew이지만 지정된 저장소 계정 이름의 저장소 계정이 이미 있는 경우 배포가 실패합니다.The deployment fails if newOrExisting is new, but the storage account with the storage account name specified already exists.

newOrExisting이 “existing”으로 설정된 다른 배포를 시도하고 기존 저장 계정을 지정해 보세요.Try making another deployment with newOrExisting set to "existing" and specify an exiting storage account. 저장소 계정을 미리 들려면 저장소 계정 만들기를 참조하세요.To create a storage account beforehand, see Create a storage account.

리소스 정리Clean up resources

Azure 리소스가 더 이상 필요하지 않은 경우 리소스 그룹을 삭제하여 배포한 리소스를 정리합니다.When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. Azure Portal의 왼쪽 메뉴에서 리소스 그룹을 선택합니다.From the Azure portal, select Resource group from the left menu.
  2. 이름으로 필터링 필드에서 리소스 그룹 이름을 입력합니다.Enter the resource group name in the Filter by name field.
  3. 해당 리소스 그룹 이름을 선택합니다.Select the resource group name. 리소스 그룹에 총 6개의 리소스가 표시됩니다.You shall see a total of six resources in the resource group.
  4. 위쪽 메뉴에서 리소스 그룹 삭제를 선택합니다.Select Delete resource group from the top menu.

다음 단계Next steps

이 자습서에서는 새로운 저장소 계정을 만들지, 기존 저장소 계정을 사용할지 사용자가 선택할 수 있는 템플릿을 개발했습니다.In this tutorial, you developed a template that allows users to choose between creating a new storage account and using an existing storage account. Azure Key Vault에서 비밀을 검색하고 해당 비밀을 템플릿 배포에 암호로 사용하는 방법을 알아보려면 다음을 참조하세요.To learn how to retrieve secrets from Azure Key Vault, and use the secrets as passwords in the template deployment, see: