Azure Arm模板-请求中发现错误的JSON内容

Azure Arm模板-请求中发现错误的JSON内容,azure,deployment,arm-template,Azure,Deployment,Arm Template,我试图使用Arm模板将访问策略添加到KeyVault,但收到一个错误“在请求中发现错误的JSON内容” 细节: 内部错误: 代码:BADDREQUEST 信息: 错误: 代码:BADDREQUEST 消息:请求中发现错误的JSON内容 我不明白我使用的模板有什么问题 这是我正在使用的模板: { "contentVersion": "1.0.0.0", "$schema": "http://s

我试图使用Arm模板将访问策略添加到KeyVault,但收到一个错误“在请求中发现错误的JSON内容” 细节: 内部错误: 代码:BADDREQUEST 信息: 错误: 代码:BADDREQUEST 消息:请求中发现错误的JSON内容

我不明白我使用的模板有什么问题

这是我正在使用的模板:

{  
        "contentVersion": "1.0.0.0",
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
        "parameters": {
            "keyVault": {
                "type": "string"
            },
            "resourceGroup": {
                "type": "string"
            },
            "subscriptionId": {
                "type": "string"
            },
            "tenantId": {
                "type": "string"
            },
            "objectId": {
                "type": "string"
            }
        },
        "resources": [
            {
                "name": "[concat(take(deployment().name, 50))]",
                "apiVersion": "2017-05-10",
                "resourceGroup": "[parameters('resourceGroup')]",
                "subscriptionId": "[parameters('subscriptionId')]",
                "type": "Microsoft.Resources/deployments",
                "properties": {
                    "mode": "Incremental",
                    "template": {
                        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                        "contentVersion": "1.0.0.0",
                        "resources": [
                            {
                                "type": "Microsoft.KeyVault/vaults/accessPolicies",
                                "name": "[concat(parameters('keyVault'), '/add')]",
                                "apiVersion": "2018-02-14",
                                "properties": {
                                    "accessPolicies": [
                                        {
                                            "tenantId": "[parameters('tenantId')]",
                                            "objectId": "[parameters('objectId')]",
                                            "permissions": {
                                                "keys": [
                                                    "get",
                                                    "list"
                                                ],
                                                "secrets": [
                                                    "get",
                                                    "list"
                                                ],
                                                "certificates": [
                                                    "get",
                                                    "list"
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            }
        ]
    }

如果您只想向现有Azure Key Vault添加一些访问策略,我修改了您的模板,如下所示:

{
    "contentVersion": "1.0.0.0",
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
    "parameters": {
        "keyVault": {
            "type": "string"
        },
        "tenantId": {
            "type": "string"
        },
        "objectId": {
            "type": "string"
        }
    },
    "resources": [{

            "type": "Microsoft.KeyVault/vaults/accessPolicies",
            "name": "[concat(parameters('keyVault'), '/add')]",
            "apiVersion": "2018-02-14",
            "properties": {
                "accessPolicies": [{
                        "tenantId": "[parameters('tenantId')]",
                        "objectId": "[parameters('objectId')]",
                        "permissions": {
                            "keys": [
                                "get",
                                "list"
                            ],
                            "secrets": [
                                "get",
                                "list"
                            ],
                            "certificates": [
                                "get",
                                "list"
                            ]
                        }
                    }
                ]
            }
        }

    ]
}
我已经在PowerShell旁进行了测试,它可以正常工作。 结果:


如果您只想向现有Azure Key Vault添加一些访问策略,我修改了您的模板,如下所示:

{
    "contentVersion": "1.0.0.0",
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
    "parameters": {
        "keyVault": {
            "type": "string"
        },
        "tenantId": {
            "type": "string"
        },
        "objectId": {
            "type": "string"
        }
    },
    "resources": [{

            "type": "Microsoft.KeyVault/vaults/accessPolicies",
            "name": "[concat(parameters('keyVault'), '/add')]",
            "apiVersion": "2018-02-14",
            "properties": {
                "accessPolicies": [{
                        "tenantId": "[parameters('tenantId')]",
                        "objectId": "[parameters('objectId')]",
                        "permissions": {
                            "keys": [
                                "get",
                                "list"
                            ],
                            "secrets": [
                                "get",
                                "list"
                            ],
                            "certificates": [
                                "get",
                                "list"
                            ]
                        }
                    }
                ]
            }
        }

    ]
}
我已经在PowerShell旁进行了测试,它可以正常工作。 结果:


问题中的代码缺少一个
{
作为第一个字符。其余字符看起来没问题。我确实有{作为第一个字符,但我遇到了这个错误。是的,这看起来很好,除非你将一些垃圾传递给参数Show going?问题解决了吗?是的,谢谢!问题中的代码缺少一个
{
作为第一个字符。其余字符看起来没问题。我确实有{作为第一个字符,但我收到了这个错误。是的,这看起来很好,除非你向parametersHow传递一些垃圾。你的问题解决了吗?是的,谢谢!