使用Azure CLI添加Function App访问限制规则遇‘has host bits set’错误求助
问题描述
我尝试添加一条规则,允许DevOps流水线的请求访问Azure Function App。我执行了以下Azure CLI命令(可在流水线或VS Code终端窗口运行):
az functionapp config access-restriction add -g rg-name-here -n func-name-here --rule-name devopsRB --action Allow --ip-address "51.142.236.175/27" --priority 146
执行后返回错误:
51.142.236.175/27 has host bits set
但通过Azure门户添加相同规则可正常操作,请问我哪里操作出错了?
问题原因及解决方法
这个错误是因为你输入的IP地址段51.142.236.175/27不符合CIDR规范——当使用/27子网掩码时,对应子网掩码为255.255.255.224,每个子网包含32个IP,合法的子网起始地址最后一个字节必须是0、32、64、96、128、160、192、224这类数值。而51.142.236.175的最后一个字节175不在其中,Azure CLI会严格校验CIDR格式,因此报错。
Azure门户能成功添加是因为它会自动将输入的IP段修正为合法的子网起始地址(比如把51.142.236.175/27调整为51.142.236.160/27)。
解决方法:
- 手动修正IP段为符合CIDR规范的地址,比如
51.142.236.160/27,重新执行CLI命令即可; - 若不确定正确的子网地址,可先在Azure门户添加规则,再通过
az functionapp config access-restriction list命令查看门户自动修正后的合法地址,用该地址编写CLI命令。
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

