ARM 템플릿의 논리 함수
Resource Manager는 ARM 템플릿(Azure Resource Manager 템플릿)에서 비교를 수행하기 위한 몇 가지 함수를 제공합니다.
및
and(arg1, arg2, ...)
모든 매개 변수 값이 True인지 확인합니다.
and
함수는 Bicep에서 지원되지 않습니다. 대신 ?: 연산자를 사용합니다.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
arg1 | 예 | 부울 값 | true인지 확인할 첫 번째 값입니다. |
arg2 | 예 | 부울 값 | true인지 확인할 두 번째 값입니다. |
더 많은 인수 | 아니요 | 부울 값 | true인지 확인할 추가 인수입니다. |
반환 값
모든 값이 True이면 True를 반환하고 그렇지 않으면 False를 반환합니다.
예제
다음 예제에서는 논리 함수를 사용하는 방법을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
bool
bool(arg1)
매개 변수를 부울로 변환합니다.
Bicep에서 bool 논리 함수를 사용합니다.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
arg1 | 예 | 문자열 또는 int | 부울로 변환할 값입니다. |
반환 값
변환된 값의 부울입니다.
설명
true() 및 false()를 사용하여 부울 값을 가져올 수도 있습니다.
예제
다음 예제에서는 문자열 또는 정수에 bool을 사용하는 방법을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueString": {
"type": "bool",
"value": "[bool('true')]"
},
"falseString": {
"type": "bool",
"value": "[bool('false')]"
},
"trueInt": {
"type": "bool",
"value": "[bool(1)]"
},
"falseInt": {
"type": "bool",
"value": "[bool(0)]"
}
}
}
기본 값을 사용한 이전 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
trueString | Bool | True |
falseString | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false
false()
false를 반환합니다.
false
함수는 Bicep에서 사용할 수 없습니다. 대신 false
키워드를 사용합니다.
매개 변수
false 함수는 매개 변수를 허용하지 않습니다.
반환 값
항상 false인 부울입니다.
예시
다음 예에서는 false 출력 값을 반환합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
falseOutput | Bool | False |
if
if(condition, trueValue, falseValue)
조건이 true인지 아니면 false인지에 따라 값을 반환합니다.
if
함수는 Bicep에서 지원되지 않습니다. 대신 ?: 연산자를 사용합니다.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
condition | 예 | 부울 값 | true인지 false인지 확인할 값입니다. |
trueValue | 예 | 문자열, 정수, 개체 또는 배열 | 조건이 true이면 반환할 값입니다. |
falseValue | 예 | 문자열, 정수, 개체 또는 배열 | 조건이 false이면 반환할 값입니다. |
반환 값
첫 번째 매개 변수가 True이면 두 번째 매개 변수를 반환하고 그렇지 않으면 세 번째 매개 변수를 반환합니다.
설명
조건이 true이면 true 값만 평가됩니다. 조건이 false이면 false 값만 평가됩니다. if
함수를 사용하여 조건부로 유효한 식만 포함할 수 있습니다. 예를 들어, 한 조건에는 있지만 다른 조건에는 없는 리소스를 참조할 수 있습니다. 조건에 따라 식을 평가하는 예는 다음 섹션에 나와 있습니다.
예제
다음 예제에서는 if
함수를 사용하는 방법을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"yesOutput": {
"type": "string",
"value": "[if(equals('a', 'a'), 'yes', 'no')]"
},
"noOutput": {
"type": "string",
"value": "[if(equals('a', 'b'), 'yes', 'no')]"
},
"objectOutput": {
"type": "object",
"value": "[if(equals('a', 'a'), json('{\"test\": \"value1\"}'), json('null'))]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
yesOutput | 문자열 | 예 |
noOutput | 문자열 | 아니요 |
objectOutput | Object | { "test": "value1" } |
다음 예제 템플릿에서는 조건부로 유효한 식에서만 이 함수를 사용하는 방법을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"logAnalytics": {
"type": "string",
"defaultValue": ""
}
},
"resources": [
{
"condition": "[not(empty(parameters('logAnalytics')))]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2022-11-01",
"name": "[format('{0}/omsOnboarding', parameters('vmName'))]",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.EnterpriseCloud.Monitoring",
"type": "MicrosoftMonitoringAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"workspaceId": "[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2015-11-01-preview').customerId, null())]"
},
"protectedSettings": {
"workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, null())]"
}
}
}
],
"outputs": {
"mgmtStatus": {
"type": "string",
"value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
}
}
}
not
not(arg1)
부울 값을 반대 값으로 변환합니다.
not
함수는 Bicep에서 지원되지 않습니다. 대신 ! 연산자를 사용합니다.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
arg1 | 예 | 부울 값 | 변환할 값입니다. |
반환 값
매개 변수가 False이면 True를 반환합니다. 매개 변수가 True이면 False를 반환합니다.
예제
다음 예제에서는 논리 함수를 사용하는 방법을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
다음 예제에서는 equals에 not
를 사용합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"checkNotEquals": {
"type": "bool",
"value": "[not(equals(1, 2))]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
checkNotEquals | Bool | True |
또는
or(arg1, arg2, ...)
매개 변수 값 중 하나가 True인지 확인합니다.
or
함수는 Bicep에서 지원되지 않습니다. 대신 || 연산자를 사용합니다.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
arg1 | 예 | 부울 값 | true인지 확인할 첫 번째 값입니다. |
arg2 | 예 | 부울 값 | true인지 확인할 두 번째 값입니다. |
더 많은 인수 | 아니요 | 부울 값 | true인지 확인할 추가 인수입니다. |
반환 값
True인 값이 하나라도 있으면 True를 반환하고 그렇지 않으면 False를 반환합니다.
예제
다음 예제에서는 논리 함수를 사용하는 방법을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true
true()
true를 반환합니다.
true
함수는 Bicep에서 사용할 수 없습니다. 대신 true
키워드를 사용합니다.
매개 변수
true 함수는 매개 변수를 허용하지 않습니다.
반환 값
항상 true인 부울입니다.
예시
다음 예에서는 true 출력 값을 반환합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
위 예제의 출력은 다음과 같습니다.
이름 | 타입 | 값 |
---|---|---|
trueOutput | Bool | True |
다음 단계
- ARM 템플릿의 섹션에 대한 설명은 ARM 템플릿의 구조 및 구문 이해를 참조하십시오.