ARM 템플릿의 베일 벗기: 매개 변수
Azure DevOps-DevOps 랩 - 비디오
매개변수 유형
템플릿을 동적화하기 위해서, 우리는 매개 변수를 사용하여 템플릿을 호출할 때 정보를 전달할 수 있다.템플릿 맨 위의 일부 파라미터를 기억하십니까?
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
}
이것이 바로 우리가 매개 변수를 정의하는 곳이다.여러 종류의 매개 변수가 있지만, 우리가 그것들을 열거하고 일부 장면을 보기 전에, 매개 변수가 어떻게 정의되었는지 먼저 이해하자.Azure 자원 관리자 템플릿의 매개 변수 정의
키 쌍 값과 같은 매개 변수를 고려하기 쉽다.매개변수의 이름과 값과 유사합니다.하지만 더 많아요.여기서 파라미터 부분을 검사합시다.
"parameters": {
"storageSKU": {
"type": "string",
"allowedValues": [
"Standard_LRS",
"Standard_ZRS",
"Standard_GRS",
"Standard_RAGRS",
"Premium_LRS"
],
"defaultValue": "Premium_LRS",
"metadata": {
"description": "The type of replication to use for the storage account."
}
}
}
여기에는 storageSKU
라는 매개변수가 정의되어 있습니다.이것은 문자열이지만, 사용자가 어떤 값을 쓸 때 allowedValues
속성을 사용해서 파라미터의 허용 값을 표시하지 않았기 때문입니다.AllowedValues는 모든 유형의 값 그룹입니다.다른 두 가지 속성을 사용하여 사용자가 매개 변수를 어떻게 사용하는지 이해하는 데 도움을 주는 것은 좋은 방법이다.
defaultValue
및description
.기본값은 사용자에게 말하는 방식입니다. 모르면 뭐라고 하세요.이것은 유연성을 해치지 않고 우리의 템플릿을 쉽게 사용할 수 있는 좋은 방법이다.설명, 메타데이터 부분의 일부분은 당연히 귀하가 예상치와/또는 이미 배치된 자원에 대한 영향에 대한 가장 상세한 정보를 제공하는 곳입니다.또한 MinValue, MinLenght, MaxValue, MaxLenght는 받아들일 수 있는 값을 제한합니다.
매개변수 유형
다양한 유형의 매개 변수가 서로 다른 유형의 정보에 적응한다.우리는 이미
string
유형과 기타 더 많은 유형, 예를 들어 int
, bool
, array
을 언급했다.예를 들어
securestring
암호를 전달하는 데 매우 편리한 방식이 있다.securestring
유형을 사용하면 자원 배치 후 정보를 읽을 수 없습니다.마지막으로 우리는
object
과secureObject
가 있다.이것들이 있으면 많은 속성을 가진 완전한 대상을 정의할 수 있다. 그것은 매우 강하다.이 모든 유형을 혼합하기 시작할 때, 일은 매우 유연해진다. 예를 들어 한 그룹의 대상을 전달하는 것!우리는 다음 장에서 이 장면들을 소개할 것이다.매개변수 사용
이제 우리는 매개 변수를 어떻게 설명하는지 알게 되었다. 이제는 우리가 그것을 어떻게 사용하는지 볼 때가 되었다.이는 ARM에 포함된 함수 이름
parameters({parameterName})
을 사용하여 쉽게 수행할 수 있습니다.이 함수는 "parameterName"값을 반환합니다.예를 들어 parameters('storageSKU')
는 Premium_LRS 를 반환합니다.ARM 템플릿에서 이 함수를 사용하려면 대괄호
[]
사이에 넣어야 합니다.다음 예에서, 우리는 속성의 값을 매개 변수와 같이 설정합니다.{
...
"name": "[parameters('storageSKU')]",
...
}
매개변수 배포 사용
앞에서 우리는 ARM 템플릿을 배치하는 다른 방법을 배웠지만 어떻게 매개 변수 값을 전달함으로써 같은 방법을 실현합니까?물론 Azure CLI를 사용하면 모든 키 쌍 값을 다음 명령에 전달할 수 있습니다.
az group deployment create -g MyResourceGroup --template-file azuredeploy.json --parameters storageName=tstStorage storageKind=StorageV2
이것은 효과적인 명령으로 작용할 것이다.그러나 그것은 매우 편리하고 휴대하기 편리하지 않다.나의 가장 좋은 방법은 매개 변수 파일을 전달하는 것이다.대상 환경에 따라 다른 파일을 사용할 수 있습니다.az group deployment create -g MyResourceGroup --template-file azuredeploy.json --parameters azuredeploy.parameters.json
매개변수 파일을 생성합니다.
매개변수 파일은 다른 JSON 파일일 뿐입니다.따라서 모든 텍스트 편집기에서 쉽게 만들 수 있습니다.그러나 VS 코드 확장에는 매우 좋은 몇 가지 기능이 있습니다. Azure Resource Manager (ARM) Tools 이것은 많은 시간을 절약할 수 있습니다.
새 매개변수 파일을 작성하려면 ARM 템플릿의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 팝업합니다.매개변수 파일 선택/생성 선택...,그 다음은 새것이고, 마지막은 모든 매개 변수이다.
그러면 다음 구조를 가진 새 파일이 생성됩니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageSKU": {
"value": "Premium_LRS"
}
}
}
Azure 자원 관리자(ARM) 도구를 사용하는 흥미로운 기능 중 하나는 템플릿과 관련된 매개 변수 값을 검증하는 것이다.인증 오류 메시지는 콘솔의 문제 탭(Ctrl+
`
에 마우스로 멈출 수 있습니다.더욱 안전하다
팔뚝 안쪽
securestring
정말 좋아요.그것들을 사용하면 우리의 민감한 정보가 로그에 나타나지 않도록 확보할 수 있다.단, 만약 우리가 사용하는 것이 매개 변수 파일이라면, 이 값도 명문 형식으로 나타날 것이다!이렇게 하는 것을 피하고 원본 코드 관리에서 비밀번호를 잘못 입력하기 위해서는 Azure KeyVault 를 사용해야 한다.이렇게 하면 매개변수 파일에서 비밀을 참조할 수 있는 활성 KeyVault가 필요합니다.{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminPassword": {
"reference": {
"keyVault": {
"id": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"
},
"secretName": "ExamplePassword"
}
},
}
}
이 예시에서 키 라이브러리에 포함된 비밀secretName을 전달합니다.KeyVault 생성 방법에 대해서는 참조Use Azure Key Vault to pass secure parameter value during deployment참조:
Reference
이 문제에 관하여(ARM 템플릿의 베일 벗기: 매개 변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/azure/demystifying-arm-templates-parameters-55h4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)