Azure SQL 数据库 ARM - 参数 'maxSizeBytes' 的类型必须为 'int'

Azure SQL Database ARM - Parameter 'maxSizeBytes' must be of type 'int'

通过 Azure 门户下载模板以创建具有基本层的新 SQL 数据库和新的 SQL 服务器时,您会得到一个名为 'maxSizeBytes' 的参数。将此模板和参数与 Visual Studio 中的 Azure Resource Group 项目一起使用会出现以下错误:

Parameter 'maxSizeBytes' must be of type 'int'

鉴于 int32 最大值是 2,147,483,647 我试着少用一个字节。然后验证通过,但我在部署期间遇到错误:

InvalidMaxSizeTierCombination: The tier 'Basic' does not support the database max size '2147483647'.

在您的 template.json 中,将 maxSizeBytes 类型改为 string 而不是 int

"maxSizeBytes": {
    "type": "string"
},

parameters.json 中将 int 值更改为字符串:

"maxSizeBytes": {
    "value": "2147483648"
},

然后它对我有用:

鉴于模板是从 Azure 下载的原始模板,我认为首先必须完成此操作很奇怪。

我认为这是一个 Visual Studio 错误。尝试使用 PowerShell(Az 模块)进行部署并使用大小:2147483648

New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateFile <path-to-template> -TemplateParameterFile <path-to-parameterfile>

使用基本 SKU 时,大小需要为 100MB、500MB、1GB 或 2GB

如果在不修改 DataType 的情况下使用 PowerShell 进行部署,则证明这是一个 Visual Studio 错误。