템플릿 사양 관리
템플릿 사양을 통해 조직 내에서 템플릿을 편리하게 게시하고 공유할 수 있습니다. 템플릿 사양을 더 많이 사용함에 따라 템플릿을 관리하는 방법을 이해하는 것이 중요해지고 있습니다.
이 단원에서는 버전 관리, 템플릿 사양을 수정하고 삭제하는 방법, 템플릿 사양에 대한 액세스를 제어하는 방법에 대해 알아봅니다.
참고
이 단원의 명령은 개념을 설명하기 위해 표시된 것입니다. 명령을 아직 실행하지 마세요. 여기에서 학습하는 내용을 곧 연습할 예정입니다.
버전 추가
단일 템플릿 사양에는 여러 버전이 있을 수 있다는 것을 배웠습니다. 템플릿 사양은 하나 이상의 버전에 대한 컨테이너 역할을 하며 각 버전은 서식 파일에 연결됩니다. 템플릿 사양을 배포할 때는 Azure Resource Manager에서 검색할 서식 파일을 알 수 있도록 사용하려는 버전을 지정해야 합니다.
Azure CLI 및 Azure PowerShell를 사용하면 여러 버전으로 쉽게 작업할 수 있습니다. 실제로 이전 연습에서 템플릿 사양을 배포할 때 이미 버전을 사용했습니다.
템플릿 사양의 버전을 만드는 방법을 신중하게 계획하는 것이 좋습니다. 두 가지 주요 결정은 버전 관리 체계 와 사용할 버전 관리 정책 입니다.
버전 관리 체계
버전 관리 체계에 따라 버전 번호를 생성하는 방법이 결정됩니다. 일반적인 버전 관리 체계는 다음을 포함합니다.
- 기본 정수는 버전 번호로 사용할 수 있습니다. 예를 들어 첫 번째 버전은
1
이고, 두 번째 버전은2
등일 수 있습니다. - 날짜 또한 버전 번호로 사용하기에 적절합니다. 예를 들어 2021년 1월 16일에 템플릿 사양의 첫 번째 버전을 게시하는 경우 버전 이름을
2021-01-16
로 지정할 수 있습니다(yyyy-mm-dd 형식 사용). 3월 3일에 다른 버전을 게시하는 경우 이름을2021-03-03
로 설정할 수 있습니다. - 의미 체계 버전 관리는 소프트웨어에서 자주 사용되는 버전 관리 시스템으로, 단일 버전 번호가 여러 파트로 구성됩니다. 각 파트는 변경 특성에 대한 다른 정보를 신호로 보냅니다.
원하는 버전 관리 체계를 사용할 수 있지만 숫자 및 날짜와 같은 의미 있는 순서로 정렬할 수 있는 항목을 선택하는 것이 좋습니다.
참고 항목
Azure는 각 버전을 만든 날짜를 저장합니다. 날짜 기반 버전 관리를 사용하지 않더라도 이 정보는 계속 볼 수 있습니다.
버전 관리 정책
템플릿 사양에서는 새 버전을 만들거나 기존 버전을 업데이트하는 시기를 유연하게 선택할 수 있습니다. 예를 들어 latest
이라는 단일 버전을 만들고 게시하여 버전 관리를 효과적으로 옵트아웃할 수 있습니다. 템플릿 사양을 변경해야 할 때마다 해당 버전을 업데이트 하기만 하면 됩니다. 이 정책이 작동할지라도 좋은 방법은 아닙니다.
반대로, 사용량에 영향을 주지 않는 기존 템플릿을 약간 변경하는 경우 새 버전을 만드는 것은 좋지 않을 수 있습니다. 템플릿 사양을 사용하는 모든 사용자에 게 새 버전 번호를 알려야 합니다.
다음은 종종 잘 작동하는 버전 정책입니다.
- 템플릿 사양에 중요한 변경이 있을 때마다 새 버전을 만듭니다. 템플릿 사양의 중요한 변경 사항에는 템플릿을 배포하는 사용자에게 차이를 만들 수 있는 모든 것이 포함됩니다. 예를 들어 템플릿에 다른 리소스를 추가하거나 리소스의 속성을 변경하는 것이 있습니다.
- 핫픽스라고도 하는 템플릿 사양을 조금씩 변경할 때마다 기존 템플릿 사양 버전을 업데이트합니다.
- 더 이상 관련이 없거나 모든 사용자가 사용하지 못하게 하려면 이전 버전을 삭제합니다.
팁
템플릿 사양의 사용자를 고려하고 그들이 예상하는 결과에 대해 생각해야 합니다. 사용자가 템플릿 사양을 여러 번 배포하고 결과를 얻은 다음, 핫픽스 후 다시 배포하여 다른 결과를 얻게 된다면 아마도 놀랄 것입니다. 사용자가 예상치 못한 결과를 얻을 가능성을 최소화하세요.
버전 설명
새 버전의 템플릿 사양을 만들 때 필요에 따라 버전 설명을 제공할 수 있습니다. 필요하지 않더라도 버전 설명을 제공하는 것이 좋습니다. 버전 설명에는 템플릿 사양을 사용하는 모든 사용자가 자신의 요구에 가장 적합한 버전을 선택할 수 있도록 하기 위해 변경한 내용이 요약되어 있습니다.
템플릿 사양 변경
템플릿 사양은 Azure 리소스이므로 다른 리소스처럼 관리할 수 있습니다. 즉, 일반적인 것처럼 템플릿 사양의 세부 정보를 보고 업데이트하고 삭제할 수 있습니다.
예를 들어 템플릿 사양의 버전을 나열 하려면 Get-AzTemplateSpec
cmdlet을 사용합니다.
Get-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec
동일한 cmdlet이 템플릿 사양 버전을 확인하는 데 사용됩니다. -Version
매개 변수를 추가하여 버전에 대한 세부 정보를 가져옵니다.
Get-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0
Versions
배열 내에서 MainTemplate
속성을 읽어 JSON 템플릿에 액세스할 수 있습니다.
(Get-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0 `
).Versions[0].MainTemplate
예를 들어 템플릿 사양의 버전을 나열 하려면 az ts show
명령을 사용합니다.
az ts show \
--resource-group MyResourceGroup \
--name MyTemplateSpec
동일한 명령을 사용하여 템플릿 사양 버전을 확인합니다. --version
인수를 추가하여 버전의 세부 정보를 가져옵니다.
az ts show \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0
JSON 템플릿이 출력에 포함됩니다.
참고
템플릿 사양에 Bicep 파일을 게시하면 JSON으로 변환됩니다. 원래 Bicep 파일을 볼 수 없으므로 다른 위치에 보관하는 것이 좋습니다.
기존 템플릿 사양을 업데이트하려면 Set-AzTemplateSpec
cmdlet을 사용하세요. 예를 들어 이 cmdlet을 사용하여 이미 게시한 버전에 핫픽스를 적용할 수 있습니다.
Set-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0 `
-TemplateFile azuredeploy.json
Remove-AzTemplateSpec
cmdlet을 사용하여 템플릿 사양 버전을 삭제할 수 있습니다.
Remove-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0
기존 템플릿 사양을 업데이트하려면 az ts update
명령을 사용하세요. 예를 들어 이 명령을 사용하여 이미 게시한 버전에 핫픽스를 적용할 수 있습니다.
az ts update \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0 \
--template-file azuredeploy.json
az ts delete
명령을 사용하여 템플릿 사양 버전을 삭제할 수 있습니다.
az ts delete \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0
템플릿 사양 내보내기
템플릿 사양으로 템플릿을 게시한 후 내보낼 수 있습니다. 템플릿 사양을 내보내면 서식 파일이 로컬 컴퓨터에 다운로드됩니다. 여기에서 서식 파일을 편집하거나 검사하여 수행하는 작업을 이해할 수 있습니다.
팁
템플릿 사양에 연결된 템플릿이 포함된 경우 템플릿 사양을 내보내면 연결된 템플릿도 다운로드됩니다. 폴더 구조까지도 유지관리합니다.
중요
Bicep 파일을 템플릿 사양으로 게시하면 Bicep 코드가 JSON 템플릿으로 변환됩니다. Bicep 코드를 JSON으로 변환하는 프로세스는 Bicep 파일에서 일부 정보를 제거합니다. 예를 들어 주석, 리소스의 기호 이름 및 리소스를 정의하는 순서가 JSON에서는 누락되거나 다를 수 있습니다. 이는 Bicep 파일을 템플릿 사양으로 쉽게 게시하고 원래의 Bicep 파일(왕복이라고도 함)로 다시 가져올 수 없다는 의미입니다. 특히 템플릿 사양을 사용할 때 원래 Bicep 코드의 복사본을 Git와 같은 코드 리포지토리에 유지하는 것이 좋습니다.
템플릿 사양을 내보내려면 Export-AzTemplateSpec
cmdlet을 사용합니다. -OutputFolder
값을 사용하여 서식 파일을 저장할 위치를 지정합니다.
Export-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0 `
-OutputFolder ./mytemplate
템플릿 사양을 내보내려면 az ts export
명령을 사용합니다. --output-folder
값을 사용하여 서식 파일을 저장할 위치를 지정합니다.
az ts export \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0 \
--output-folder ./mytemplate
템플릿 사양에 대한 액세스 제어
템플릿 사양은 Azure 리소스이므로 Azure의 IAM(ID 및 액세스 관리)을 사용합니다. 사용자가 템플릿 사양을 배포하면 Azure는 사용자에게 템플릿 사양을 읽을 수 있는 권한이 있는지 먼저 확인합니다.
참고
템플릿 사양을 배포하려면 사용자는 다음이 필요합니다.
- 템플릿 사양을 읽을 수 있는 액세스
- 리소스 그룹 또는 배포를 요청하는 다른 범위에 배포하기 위한 액세스
Azure는 배포를 시작하기 전에 두 조건을 모두 검사합니다.