带@minLength/@maxLength的securestring参数执行New-AzResourceGroupDeployment报错
问题诊断与结论
这是Azure PowerShell与Bicep交互时的已知bug,并非你的Bicep脚本存在错误。
问题原因
当Bicep参数同时使用@secure()标记和@minLength/@maxLength长度约束时,生成的ARM模板会为该参数添加对应的验证规则。但Azure PowerShell在处理命令行交互输入的安全参数时,会将其解析为SecureString类型,而PowerShell的ValidateLength特性仅支持普通字符串(string)或字符串数组(string[])类型,因此触发参数验证失败的错误。
解决办法
- 临时规避:移除Bicep参数中的
@minLength和@maxLength约束,或者改用ARM模板参数文件传递安全参数,绕开PowerShell的参数验证逻辑。 - 彻底修复:升级至最新版本的Azure PowerShell和Bicep工具,若问题仍复现,可在Azure PowerShell官方仓库提交新的反馈。
内容的提问来源于stack exchange,提问作者bahrep
相关产品推荐
相关产品推荐

