使用AZ CLI配置Traffic Manager预期状态码范围报错求助
解决Azure CLI更新Traffic Manager预期状态码范围的反序列化错误
你遇到的这个反序列化错误,核心原因是**monitorConfig.expectedStatusCodeRanges需要的是包含状态码范围对象的数组格式**,而不是单个字符串值。Azure的Traffic Manager API期望这个参数是MonitorConfigExpectedStatusCodeRangesItem类型的集合,每个元素必须明确指定min和max属性——哪怕你只想匹配单个状态码,也需要把它定义成一个范围(min和max相同)。
正确的命令示例
1. 匹配单个状态码(比如200)
az network traffic-manager profile update --resource-group RG20BRAM-DEV --name test --set monitorConfig.expectedStatusCodeRanges='[{"min":200,"max":200}]'
2. 匹配多个状态码范围(比如200-299和400-404)
az network traffic-manager profile update --resource-group RG20BRAM-DEV --name test --set monitorConfig.expectedStatusCodeRanges='[{"min":200,"max":299},{"min":400,"max":404}]'
为什么你的命令会出错?
你原来的命令--set monitorConfig.expectedStatusCodeRanges='200'传递的是单个字符串值,但Azure CLI尝试将其反序列化为API要求的MonitorConfigExpectedStatusCodeRangesItem数组时,无法完成类型转换,因此抛出了Cannot deserialize as [MonitorConfigExpectedStatusCodeRangesItem]的错误。
只要按照API期望的JSON数组格式传递每个状态码范围的min和max属性,就能成功完成更新操作。
内容的提问来源于stack exchange,提问作者bramvdk
相关产品推荐
相关产品推荐

