允许多名称模式

允许资源使用多种名称模式中的一种。 在策略规则中指定允许的名称模式。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

示例模板

{
    "properties": {
        "displayName": "Match multiple name patterns.",
        "description": "Allows one of multiple naming patterns for resources.",
        "mode": "indexed",
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "not": {
                            "field": "name",
                            "match": "contoso??????"
                        }
                    },
                    {
                        "not": {
                            "field": "name",
                            "match": "contoso-???-##"
                        }
                    }
                ]
            },
            "then": {
                "effect": "deny"
            }
        }
    }
}

可将 Azure 门户PowerShellAzure CLI 配合使用来部署此模板。

使用门户进行部署

“部署到 Azure”

使用 PowerShell 进行部署

本示例需要 Azure PowerShell 模块 5.1.1 或更高版本。 运行 Get-Module -ListAvailable AzureRM 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure PowerShell 模块

运行 Connect-AzureRmAccount -Environment AzureChinaCloud,创建与 Azure 的连接。

$definition = New-AzureRmPolicyDefinition -Name "allow-multiple-name-patterns" -DisplayName "Allow one of many name patterns to be used for resources." -description "Allow one of many name patterns to be used for resources." -Policy 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/TextPatterns/allow-multiple-name-patterns/azurepolicy.rules.json' -Parameter 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/TextPatterns/allow-multiple-name-patterns/azurepolicy.parameters.json' -Mode All
$definition
$assignment = New-AzureRMPolicyAssignment -Name <assignmentname> -Scope <scope> -PolicyDefinition $definition
$assignment

清理 PowerShell 部署

运行以下命令来删除资源组、VM 和所有相关资源。

Remove-AzureRmResourceGroup -Name myResourceGroup

使用 Azure CLI 进行部署

若要运行此示例,请确保已安装最新的 Azure CLI 2.0。 若要开始,请运行 az login 以创建与 Azure 的连接。

Note

在运行 az login 之前,请先运行 az cloud set -n AzureChinaCloud 以更改云环境。 如果要切换回全球 Azure,请再次运行 az cloud set -n AzureCloud

此示例在 Bash shell 中正常工作。 有关在 Windows 客户端上运行 Azure CLI 脚本的选项,请参阅在 Windows 上安装 Azure CLI

az policy definition create --name 'allow-multiple-name-patterns' --display-name 'Allow one of many name patterns to be used for resources.' --description 'Allow one of many name patterns to be used for resources.' --rules 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/TextPatterns/allow-multiple-name-patterns/azurepolicy.rules.json' --params 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/TextPatterns/allow-multiple-name-patterns/azurepolicy.parameters.json' --mode All

az policy assignment create --name <assignmentname> --scope <scope> --policy "allow-multiple-name-patterns" 

清理 Azure CLI 部署

运行以下命令来删除资源组、VM 和所有相关资源。

az group delete --name myResourceGroup --yes

后续步骤