Azure Resource Manager 템플릿용 논리 함수Logical functions for Azure Resource Manager templates

Resource Manager는 템플릿에서 비교를 수행하기 위한 몇 가지 함수를 제공합니다.Resource Manager provides several functions for making comparisons in your templates.

andand

and(arg1, arg2, ...)

모든 매개 변수 값이 True인지 확인합니다.Checks whether all parameter values are true.

매개 변수Parameters

매개 변수를 포함해야 합니다.Parameter 필수Required 형식Type 설명Description
arg1arg1 Yes booleanboolean true인지 확인할 첫 번째 값입니다.The first value to check whether is true.
arg2arg2 Yes booleanboolean true인지 확인할 두 번째 값입니다.The second value to check whether is true.
추가 인수additional arguments 아닙니다.No booleanboolean True인지 확인할 추가 인수입니다.Additional arguments to check whether are true.

반환 값Return value

모든 값이 True이면 True를 반환하고 그렇지 않으면 False를 반환합니다.Returns True if all values are true; otherwise, False.

Examples

다음 예제 템플릿에서는 논리 함수를 사용하는 방법을 보여줍니다.The following example template shows how to use logical functions.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [ ],
    "outputs": {
        "andExampleOutput": {
            "value": "[and(bool('true'), bool('false'))]",
            "type": "bool"
        },
        "orExampleOutput": {
            "value": "[or(bool('true'), bool('false'))]",
            "type": "bool"
        },
        "notExampleOutput": {
            "value": "[not(bool('true'))]",
            "type": "bool"
        }
    }
}

위 예제의 출력은 다음과 같습니다.The output from the preceding example is:

이름Name typeType Value
andExampleOutputandExampleOutput BoolBool FalseFalse
orExampleOutputorExampleOutput BoolBool TrueTrue
notExampleOutputnotExampleOutput BoolBool FalseFalse

boolbool

bool(arg1)

매개 변수를 부울로 변환합니다.Converts the parameter to a boolean.

매개 변수Parameters

매개 변수를 포함해야 합니다.Parameter 필수Required 형식Type 설명Description
arg1arg1 Yes 문자열 또는 intstring or int 부울로 변환할 값입니다.The value to convert to a boolean.

반환 값Return value

변환된 값의 부울입니다.A boolean of the converted value.

Examples

다음 예제 템플릿에서는 문자열 또는 정수에 bool을 사용하는 방법을 보여줍니다.The following example template shows how to use bool with a string or integer.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [],
    "outputs": {
        "trueString": {
            "value": "[bool('true')]",
            "type" : "bool"
        },
        "falseString": {
            "value": "[bool('false')]",
            "type" : "bool"
        },
        "trueInt": {
            "value": "[bool(1)]",
            "type" : "bool"
        },
        "falseInt": {
            "value": "[bool(0)]",
            "type" : "bool"
        }
    }
}

기본 값을 사용한 이전 예제의 출력은 다음과 같습니다.The output from the preceding example with the default values is:

이름Name typeType Value
trueStringtrueString BoolBool TrueTrue
falseStringfalseString BoolBool FalseFalse
trueInttrueInt BoolBool TrueTrue
falseIntfalseInt BoolBool FalseFalse

ifif

if(condition, trueValue, falseValue)

조건이 true인지 아니면 false인지에 따라 값을 반환합니다.Returns a value based on whether a condition is true or false.

매개 변수Parameters

매개 변수를 포함해야 합니다.Parameter 필수Required 형식Type 설명Description
conditioncondition Yes booleanboolean True 또는 false 인지 확인할 값입니다.The value to check whether it's true or false.
trueValuetrueValue Yes 문자열, 정수, 개체 또는 배열string, int, object, or array 조건이 true이면 반환할 값입니다.The value to return when the condition is true.
falseValuefalseValue Yes 문자열, 정수, 개체 또는 배열string, int, object, or array 조건이 false이면 반환할 값입니다.The value to return when the condition is false.

반환 값Return value

첫 번째 매개 변수가 True이면 두 번째 매개 변수를 반환하고 그렇지 않으면 세 번째 매개 변수를 반환합니다.Returns second parameter when first parameter is True; otherwise, returns third parameter.

설명Remarks

조건이 True에 true 값만 평가 됩니다.When the condition is True, only the true value is evaluated. 조건이 False, false 값만 평가 됩니다.When the condition is False, only the false value is evaluated. 사용 하 여 합니다 경우 함수만 조건에 따라 사용할 수 있는 식을 포함할 수 있습니다.With the if function, you can include expressions that are only conditionally valid. 예를 들어, 하나의 조건이 하지만 다른 조건이 아니었습니다 존재 하는 리소스를 참조할 수 있습니다.For example, you can reference a resource that exists under one condition but not under the other condition. 조건에 따라 식 평가의 예는 다음 섹션에 표시 됩니다.An example of conditionally evaluating expressions is shown in the following section.

Examples

다음 예제 템플릿에서는 if 함수를 사용하는 방법을 보여줍니다.The following example template shows how to use the if function.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-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'))]"
        }
    }
}

위 예제의 출력은 다음과 같습니다.The output from the preceding example is:

NameName typeType Value
yesOutputyesOutput 문자열String yes
noOutputnoOutput StringString nono
objectOutputobjectOutput ObjectObject { "test": "value1" }{ "test": "value1" }

다음 예제 템플릿 만 조건에 따라 사용할 수 있는 식을 사용 하 여이 함수를 사용 하는 방법을 보여 줍니다.The following example template shows how to use this function with expressions that are only conditionally valid.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-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')))]",
            "name": "[concat(parameters('vmName'),'/omsOnboarding')]",
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "location": "[parameters('location')]",
            "apiVersion": "2017-03-30",
            "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, json('null'))]"
                },
                "protectedSettings": {
                    "workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, json('null'))]"
                }
            }
        }
    ],
    "outputs": {
        "mgmtStatus": {
            "type": "string",
            "value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
        }
    }
}

notnot

not(arg1)

부울 값을 반대 값으로 변환합니다.Converts boolean value to its opposite value.

매개 변수Parameters

매개 변수를 포함해야 합니다.Parameter 필수Required 형식Type 설명Description
arg1arg1 Yes booleanboolean 변환할 값입니다.The value to convert.

반환 값Return value

매개 변수가 False이면 True를 반환합니다.Returns True when parameter is False. 매개 변수가 True이면 False를 반환합니다.Returns False when parameter is True.

Examples

다음 예제 템플릿에서는 논리 함수를 사용하는 방법을 보여줍니다.The following example template shows how to use logical functions.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [ ],
    "outputs": {
        "andExampleOutput": {
            "value": "[and(bool('true'), bool('false'))]",
            "type": "bool"
        },
        "orExampleOutput": {
            "value": "[or(bool('true'), bool('false'))]",
            "type": "bool"
        },
        "notExampleOutput": {
            "value": "[not(bool('true'))]",
            "type": "bool"
        }
    }
}

위 예제의 출력은 다음과 같습니다.The output from the preceding example is:

이름Name typeType Value
andExampleOutputandExampleOutput BoolBool FalseFalse
orExampleOutputorExampleOutput BoolBool TrueTrue
notExampleOutputnotExampleOutput BoolBool FalseFalse

다음 예제 템플릿에서는 equalsnot을 사용합니다.The following example template uses not with equals.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
    ],
    "outputs": {
        "checkNotEquals": {
            "type": "bool",
            "value": "[not(equals(1, 2))]"
        }
    }

위 예제의 출력은 다음과 같습니다.The output from the preceding example is:

이름Name typeType Value
checkNotEqualscheckNotEquals BoolBool TrueTrue

또는or

or(arg1, arg2, ...)

매개 변수 값 중 하나가 True인지 확인합니다.Checks whether any parameter value is true.

매개 변수Parameters

매개 변수를 포함해야 합니다.Parameter 필수Required 형식Type 설명Description
arg1arg1 Yes booleanboolean true인지 확인할 첫 번째 값입니다.The first value to check whether is true.
arg2arg2 Yes booleanboolean true인지 확인할 두 번째 값입니다.The second value to check whether is true.
추가 인수additional arguments 아닙니다.No booleanboolean True인지 확인할 추가 인수입니다.Additional arguments to check whether are true.

반환 값Return value

True인 값이 하나라도 있으면 True를 반환하고 그렇지 않으면 False를 반환합니다.Returns True if any value is true; otherwise, False.

Examples

다음 예제 템플릿에서는 논리 함수를 사용하는 방법을 보여줍니다.The following example template shows how to use logical functions.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [ ],
    "outputs": {
        "andExampleOutput": {
            "value": "[and(bool('true'), bool('false'))]",
            "type": "bool"
        },
        "orExampleOutput": {
            "value": "[or(bool('true'), bool('false'))]",
            "type": "bool"
        },
        "notExampleOutput": {
            "value": "[not(bool('true'))]",
            "type": "bool"
        }
    }
}

위 예제의 출력은 다음과 같습니다.The output from the preceding example is:

NameName typeType Value
andExampleOutputandExampleOutput BoolBool FalseFalse
orExampleOutputorExampleOutput BoolBool TrueTrue
notExampleOutputnotExampleOutput BoolBool FalseFalse

다음 단계Next steps