ARM模板部署Azure文件共享失败 报InvalidHeaderValue错误
问题修复方案
这个InvalidHeaderValue错误由典型的ARM模板配置不匹配问题导致,按顺序排查即可解决:
第一优先级修复API版本与属性不兼容问题
你把资源apiVersion从2021-09-01降级到2019-06-01后,没有同步移除低版本API不支持的enabledProtocols属性。这个属性是2020年8月之后的API版本才新增的配置项,2019-06-01版本无法识别该字段,会把无效属性值错误序列化到HTTP请求头,直接触发头格式错误。- 如果你坚持用2019-06-01版本,直接删掉properties块里的
"enabledProtocols": "SMB"行就行,这个版本默认创建的就是SMB协议共享,不需要显式声明。 - 如果你需要保留协议配置(比如后续要开通NFS共享),直接把apiVersion升回
2021-04-01稳定版即可,不需要降级旧版本。
- 如果你坚持用2019-06-01版本,直接删掉properties块里的
第二优先级校验文件共享命名与配额配置
- 你当前的共享名是直接拼接存储账户名加
04生成的,要确认最终生成的名称符合文件共享命名规则:仅支持小写字母、数字、单连字符,长度3-63位,开头结尾不能是连字符。建议单独定义文件共享名参数,不要直接复用存储账户名拼接,避免存储账户名长度变化导致共享名超长、格式违规。 - 2019-06-01版本API支持的单共享最大配额是5120GB,你当前配置的5120是版本临界值,部分区域部署时会触发校验错误,可以先把配额调到5100测试,或者升级API版本后配置最高102400GB(100TiB)的大份额配额。
- 你当前的共享名是直接拼接存储账户名加
修复后的可用模板片段
{ "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "apiVersion": "2021-04-01", "name": "[concat(parameters('storageAccounts_testvalue202206151534_name'), '/default/', parameters('fileShareName'))]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/fileServices', parameters('storageAccounts_testvalue202206151534_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_testvalue202206151534_name'))]" ], "properties": { "accessTier": "TransactionOptimized", "shareQuota": 5120, "enabledProtocols": "SMB" } }
注:如果升级API版本后仍然报错,先检查存储账户是否开启了大文件共享功能,100TiB级别的配额需要存储账户侧提前开启对应功能开关。
内容的提问来源于stack exchange,提问作者wilson_smyth
相关产品推荐
相关产品推荐

