用于 Azure Resource Manager 模板的比较函数

Resource Manager 提供了多个用于在模板中进行比较的函数。

equals

equals(arg1, arg2)

检查两个值是否相等。

Parameters

参数 必选 类型 说明
arg1 int、string、array 或 object 要检查是否相等的第一个值。
arg2 int、string、array 或 object 要检查是否相等的第二个值。

返回值

如果值相等,返回 True;否则返回 False

备注

equals 函数通常与 condition 元素一起使用来测试资源是否已部署。

{
    "condition": "[equals(parameters('newOrExisting'),'new')]",
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageAccountName')]",
    "apiVersion": "2017-06-01",
    "location": "[resourceGroup().location]",
    "sku": {
        "name": "[variables('storageAccountType')]"
    },
    "kind": "Storage",
    "properties": {}
}

示例

下列示例模板检查不同类型的值是否相等。 所有默认值都返回 True。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "firstInt": {
            "type": "int",
            "defaultValue": 1
        },
        "secondInt": {
            "type": "int",
            "defaultValue": 1
        },
        "firstString": {
            "type": "string",
            "defaultValue": "a"
        },
        "secondString": {
            "type": "string",
            "defaultValue": "a"
        },
        "firstArray": {
            "type": "array",
            "defaultValue": ["a", "b"]
        },
        "secondArray": {
            "type": "array",
            "defaultValue": ["a", "b"]
        },
        "firstObject": {
            "type": "object",
            "defaultValue": {"a": "b"}
        },
        "secondObject": {
            "type": "object",
            "defaultValue": {"a": "b"}
        }
    },
    "resources": [
    ],
    "outputs": {
        "checkInts": {
            "type": "bool",
            "value": "[equals(parameters('firstInt'), parameters('secondInt') )]"
        },
        "checkStrings": {
            "type": "bool",
            "value": "[equals(parameters('firstString'), parameters('secondString'))]"
        },
        "checkArrays": {
            "type": "bool",
            "value": "[equals(parameters('firstArray'), parameters('secondArray'))]"
        },
        "checkObjects": {
            "type": "bool",
            "value": "[equals(parameters('firstObject'), parameters('secondObject'))]"
        }
    }
}

采用默认值,前面示例的输出为:

名称 类型
checkInts Bool True
checkStrings Bool True
checkArrays Bool True
checkObjects Bool True

要使用 Azure CLI 部署此示例模板,请使用:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/equals.json

要使用 PowerShell 部署此示例模板,请使用:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/equals.json 

以下示例模板结合使用 not 和 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))]"
        }
    }
}

前述示例的输出为:

名称 类型
checkNotEquals Bool True

要使用 Azure CLI 部署此示例模板,请使用:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/not-equals.json

要使用 PowerShell 部署此示例模板,请使用:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/not-equals.json 

greater

greater(arg1, arg2)

检查第一个值是否大于第二个值。

Parameters

参数 必选 类型 说明
arg1 int 或 string 用于大于比较的第一个值。
arg2 int 或 string 用于大于比较的第二个值。

返回值

如果第一个值大于第二个值,返回 True;否则返回 False

示例

下列示例模板检查一个值是否大于另一个值。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "firstInt": {
            "type": "int",
            "defaultValue": 1
        },
        "secondInt": {
            "type": "int",
            "defaultValue": 2
        },
        "firstString": {
            "type": "string",
            "defaultValue": "A"
        },
        "secondString": {
            "type": "string",
            "defaultValue": "a"
        }
    },
    "resources": [
    ],
    "outputs": {
        "checkInts": {
            "type": "bool",
            "value": "[greater(parameters('firstInt'), parameters('secondInt') )]"
        },
        "checkStrings": {
            "type": "bool",
            "value": "[greater(parameters('firstString'), parameters('secondString'))]"
        }
    }
}

上述示例中使用默认值的输出为:

名称 类型
checkInts Bool False
checkStrings Bool True

要使用 Azure CLI 部署此示例模板,请使用:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/greater.json

要使用 PowerShell 部署此示例模板,请使用:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/greater.json 

greaterOrEquals

greaterOrEquals(arg1, arg2)

检查第一个值是否大于或等于第二个值。

Parameters

参数 必选 类型 说明
arg1 int 或 string 用于大于或等于比较的第一个值。
arg2 int 或 string 用于大于或等于比较的第二个值。

返回值

如果第一个值大于或等于第二个值,返回 True;否则返回 False

示例

下列示例模板检查一个值是否大于等于另一个值。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "firstInt": {
            "type": "int",
            "defaultValue": 1
        },
        "secondInt": {
            "type": "int",
            "defaultValue": 2
        },
        "firstString": {
            "type": "string",
            "defaultValue": "A"
        },
        "secondString": {
            "type": "string",
            "defaultValue": "a"
        }
    },
    "resources": [
    ],
    "outputs": {
        "checkInts": {
            "type": "bool",
            "value": "[greaterOrEquals(parameters('firstInt'), parameters('secondInt') )]"
        },
        "checkStrings": {
            "type": "bool",
            "value": "[greaterOrEquals(parameters('firstString'), parameters('secondString'))]"
        }
    }
}

上述示例中使用默认值的输出为:

名称 类型
checkInts Bool False
checkStrings Bool True

要使用 Azure CLI 部署此示例模板,请使用:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/greaterorequals.json

要使用 PowerShell 部署此示例模板,请使用:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/greaterorequals.json 

less

less(arg1, arg2)

检查第一个值是否小于第二个值。

Parameters

参数 必选 类型 说明
arg1 int 或 string 用于小于比较的第一个值。
arg2 int 或 string 用于小于比较的第二个值。

返回值

如果第一个值小于第二个值,返回 True;否则返回 False

示例

下列示例模板检查一个值是否小于另一个值。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "firstInt": {
            "type": "int",
            "defaultValue": 1
        },
        "secondInt": {
            "type": "int",
            "defaultValue": 2
        },
        "firstString": {
            "type": "string",
            "defaultValue": "A"
        },
        "secondString": {
            "type": "string",
            "defaultValue": "a"
        }
    },
    "resources": [
    ],
    "outputs": {
        "checkInts": {
            "type": "bool",
            "value": "[less(parameters('firstInt'), parameters('secondInt') )]"
        },
        "checkStrings": {
            "type": "bool",
            "value": "[less(parameters('firstString'), parameters('secondString'))]"
        }
    }
}

上述示例中使用默认值的输出为:

名称 类型
checkInts Bool True
checkStrings Bool False

要使用 Azure CLI 部署此示例模板,请使用:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/less.json

要使用 PowerShell 部署此示例模板,请使用:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/less.json 

lessOrEquals

lessOrEquals(arg1, arg2)

检查第一个值是否小于或等于第二个值。

Parameters

参数 必选 类型 说明
arg1 int 或 string 用于小于或等于比较的第一个值。
arg2 int 或 string 用于小于或等于比较的第二个值。

返回值

如果第一个值小于或等于第二个值,返回 True;否则返回 False

示例

下列示例模板检查一个值是否小于等于另一个值。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "firstInt": {
            "type": "int",
            "defaultValue": 1
        },
        "secondInt": {
            "type": "int",
            "defaultValue": 2
        },
        "firstString": {
            "type": "string",
            "defaultValue": "A"
        },
        "secondString": {
            "type": "string",
            "defaultValue": "a"
        }
    },
    "resources": [
    ],
    "outputs": {
        "checkInts": {
            "type": "bool",
            "value": "[lessOrEquals(parameters('firstInt'), parameters('secondInt') )]"
        },
        "checkStrings": {
            "type": "bool",
            "value": "[lessOrEquals(parameters('firstString'), parameters('secondString'))]"
        }
    }
}

上述示例中使用默认值的输出为:

名称 类型
checkInts Bool True
checkStrings Bool False

要使用 Azure CLI 部署此示例模板,请使用:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/lessorequals.json

要使用 PowerShell 部署此示例模板,请使用:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/lessorequals.json 

后续步骤