json - 部署模板解析失败 : 'Required property ' type' not found in JSON. 路径 '',行,位置。'。 (代码:无效模板)

标签 json azure azure-rm-template azure-sql-managed-instance

我使用 Azure 门户在 Azure 中部署了 SQL 托管实例,在实际部署之前,它可以选择保存模板以便将来部署自动化,我就是这么做的。

然后我删除了托管实例,现在我需要使用生成的模板重新部署它。

当我在 Azure 门户中转到“部署自定义模板”时,从库中选择一个模板,然后 Azure 门户抛出验证错误:

Deployment template parse failed: 'Required property 'type' not found in JSON. Path '', line 256, position 27.'. (Code: InvalidTemplate)

模板由两个文件组成,parameters.json 和 template.json

看看parameters.json,它是一个短文件,甚至没有第256行,而template.json则有第256行(还有更多):

255       "federatedClientId": {
256         "type": "string",
257          "defaultValue": ""
258       },

这有点奇怪 - 它有“type”属性。
谷歌搜索和使用 Bing AI 并没有给我提供有意义的解决方案。我该如何修复它并使其正常工作?

最佳答案

Deployment template parse failed: 'Required property 'type' not found in JSON. Path '', line, position.'. (Code: InvalidTemplate): -

错误消息显示模板无效。确保模板格式正确 (Json),没有过多的空格 &
''。 Arm 模板还可以使用 template validator 进行验证.

如果模板看起来仍然不错,请尝试使用所有必需的属性重新部署它。

正如您所做的那样,我创建了一个 SQL 托管实例并删除了部署。当我使用以下 parameters.json 文件使用自定义模板时,它按预期工作。

"parameters": {
        "location": {
            "defaultValue": "[resourceGroup().location]",
            "type": "String",
            "metadata": {
                "description": "The location of the Managed Instance. Default is the location of the selected resource group."
            }
        },
        "managedInstanceName": {
            "type": "String",
            "metadata": {
                "description": "The name of the Managed Instance."
            }
        },
        "deployInExistingSubnet": {
            "defaultValue": false,
            "type": "Bool",
            "metadata": {
                "description": "Determines whether the Managed Instance will be deployed in an existing subnet. Subnet parameters need to be valid if this is set."
            }
        },
        "virtualNetworkResourceGroupName": {
            "defaultValue": "[resourceGroup().name]",
            "type": "String",
            "metadata": {
                "description": "The resource group where the networking resources will be created or updated. Default is the same resource group as Managed Instance."
            }
        },
        "virtualNetworkName": {
            "defaultValue": "[concat('vnet-', parameters('managedInstanceName'))]",
            "type": "String",
            "metadata": {
                "description": "The virtual network name. Leave empty for the default value."
            }
        },
        "subnetName": {
            "defaultValue": "ManagedInstance",
            "type": "String",
            "metadata": {
                "description": "The subnet name. Leave empty for the default value."
            }
        },
        "skuName": {
            "defaultValue": "GP_Gen5",
            "allowedValues": [
                "GP_Gen4",
                "GP_Gen5",
                "GP_G8IM",
                "GP_G8IH",
                "BC_Gen4",
                "BC_Gen5",
                "BC_G8IM",
                "BC_G8IH"
            ],
            "type": "String",
            "metadata": {
                "description": "Managed instance SKU. If SKU is not set, skuEdition and hardwareFamily values have to be populated."
            }
        },
        "skuEdition": {
            "defaultValue": "GeneralPurpose",
            "allowedValues": [
                "GeneralPurpose",
                "BusinessCritical"
            ],
            "type": "String",
            "metadata": {
                "description": "SKU Edition for the Managed Instance. In case skuName is set this parameter is ignored."
            }
        },
        "hardwareFamily": {
            "defaultValue": "Gen5",
            "allowedValues": [
                "Gen4",
                "Gen5",
                "Gen8IM",
                "Gen8IH"
            ],
            "type": "String",
            "metadata": {
                "description": "Compute generation for the instance. In case skuName is set this parameter is ignored."
            }
        },
        "storageSizeInGB": {
            "defaultValue": 256,
            "minValue": 32,
            "type": "Int",
            "metadata": {
                "description": "Determines how much Storage size in GB to associate with instance. Increments of 32 GB allowed only."
            }
        },
        "vCores": {
            "defaultValue": 8,
            "allowedValues": [
                4,
                8,
                16,
                24,
                32,
                40,
                64,
                80,
                96,
                128
            ],
            "type": "Int",
            "metadata": {
                "description": "The number of vCores."
            }
        },
        "licenseType": {
            "defaultValue": "LicenseIncluded",
            "allowedValues": [
                "LicenseIncluded",
                "BasePrice"
            ],
            "type": "String",
            "metadata": {
                "description": "Determines license pricing model. Select 'LicenseIncluded' for a regular price inclusive of a new SQL license. Select 'Base Price' for a discounted AHB price for bringing your own SQL licenses."
            }
        },
        "hybridSecondaryUsage": {
            "defaultValue": "Active",
            "allowedValues": [
                "Active",
                "Passive"
            ],
            "type": "String",
            "metadata": {
                "description": "Determines whether Hybrid failover rights benefit is activated. Select 'Passive' to enable this benefit."
            }
        },
        "dnsZonePartner": {
            "defaultValue": "",
            "type": "String",
            "metadata": {
                "description": "The resource id of another Managed Instance whose DNS zone this Managed Instance will share after creation."
            }
        },
        "collation": {
            "defaultValue": "SQL_Latin1_General_CP1_CI_AS",
            "type": "String",
            "metadata": {
                "description": "Collation of the Managed Instance."
            }
        },
        "timezoneId": {
            "defaultValue": "UTC",
            "type": "String",
            "metadata": {
                "description": "Id of the timezone. Allowed values are timezones supported by Windows."
            }
        },
        "proxyOverride": {
            "defaultValue": "Proxy",
            "allowedValues": [
                "Proxy",
                "Redirect"
            ],
            "type": "String",
            "metadata": {
                "description": ""
            }
        },
        "publicDataEndpointEnabled": {
            "defaultValue": false,
            "type": "Bool",
            "metadata": {
                "description": "Determines whether public data endpoint will be enabled, required for clients outside of the connected virtual networks. Public endpoint will always default to Proxy connection mode."
            }
        },
        "nsgForPublicEndpoint": {
            "defaultValue": "",
            "allowedValues": [
                "",
                "allowFromInternetTo3342NSG",
                "allowFromAzureCloudTo3342NSG",
                "disallowTrafficTo3342NSG"
            ],
            "type": "String",
            "metadata": {
                "description": "Determines which NSG inbound traffic rule to add for the public endpoint. In case publicDataEndpointEnabled is false this parameter is ignored."
            }
        },
        "minimalTlsVersion": {
            "defaultValue": "1.2",
            "allowedValues": [
                "1.0",
                "1.1",
                "1.2"
            ],
            "type": "String",
            "metadata": {
                "description": "The minimum TLS version enforced by the Managed Instance for inbound connections."
            }
        },
        "administratorLogin": {
            "defaultValue": "",
            "type": "String",
            "metadata": {
                "description": "The login of the Managed Instance admin."
            }
        },
        "administratorLoginPassword": {
            "defaultValue": "",
            "type": "SecureString",
            "metadata": {
                "description": "The password of the Managed Instance admin."
            }
        },
        "administrators": {
            "defaultValue": {},
            "type": "Object"
        },
        "managedInstanceTags": {
            "defaultValue": {},
            "type": "Object",
            "metadata": {
                "description": "Resource tags to associate with the instance."
            }
        },
        "requestedBackupStorageRedundancy": {
            "defaultValue": "Geo",
            "allowedValues": [
                "Geo",
                "Zone",
                "Local",
                "GeoZone"
            ],
            "type": "String",
            "metadata": {
                "description": "Option for configuring backup storage redundancy. Selecting 'Geo' will enable 'RA-GRS'."
            }
        },
        "maintenanceConfigurationId": {
            "defaultValue": "",
            "type": "String",
            "metadata": {
                "description": "Maintenance configuration id assigned to the database. This configuration defines the period when the maintenance updates will occur."
            }
        },
        "zoneRedundant": {
            "defaultValue": false,
            "type": "Bool",
            "metadata": {
                "description": "Determines whether zone redundancy will be enabled."
            }
        },
        "enableADS": {
            "defaultValue": false,
            "type": "Bool"
        },
        "enableVA": {
            "defaultValue": false,
            "type": "Bool"
        },
        "identity": {
            "defaultValue": {},
            "type": "Object"
        },
        "primaryUserAssignedIdentityId": {
            "defaultValue": "",
            "type": "String"
        },
        "federatedClientId": {
            "defaultValue": "",
            "type": "String"
        },
        "servicePrincipal": {
            "defaultValue": {},
            "type": "Object"
        }
    }

部署成功:

enter image description here

您也可以引用MSDoc常见的 ARM 模板部署错误。

关于json - 部署模板解析失败 : 'Required property ' type' not found in JSON. 路径 '',行,位置。'。 (代码:无效模板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76671772/

相关文章:

c# - 使用函数 ARM 模板时出现现有资源错误

powershell - 组合多个 ARM 模板

azure - Remove-AzureRmResource 请求的资源不支持http方法 'DELETE'

json - 尝试在 Monotouch 上使用 ServiceStack 序列化自定义对象时出现 AOT 编译错误

javascript - 使用 .each() 从表行中创建嵌套对象

azure - ELSE 返回到 Azure 数据工厂中的 IF-ELSE 语句(While True)之前

azure - 使用 AzCopy 在 Azure BLOB 容器之间复制文件时出现错误

ios - 如何同步使用Core Data?

java - JSON 和 XML 不匹配

azure - 如何使用数据磁盘创建Azure vm,然后通过ansible对其进行格式化