如何使用PowerShell切换Azure Redis缓存的公网访问状态?
切换Azure Redis缓存公网访问状态的正确操作方法
问题背景
尝试通过Set-AzRedisCache、Get-AzResource及az resource update命令修改属性切换Azure Redis缓存公网访问状态,但无法找到对应属性或操作存在遗漏。
解决方案
方法1:使用Azure CLI的az redis update命令
直接通过Redis专属CLI命令修改,无需定位通用资源属性:
# 关闭公网访问 az redis update --name <你的Redis缓存名称> --resource-group <资源组名称> --set publicNetworkAccess=Disabled # 开启公网访问 az redis update --name <你的Redis缓存名称> --resource-group <资源组名称> --set publicNetworkAccess=Enabled
方法2:使用PowerShell的Set-AzRedisCache命令
该命令支持直接指定公网访问状态参数:
# 关闭公网访问 Set-AzRedisCache -Name <你的Redis缓存名称> -ResourceGroupName <资源组名称> -PublicNetworkAccess Disabled # 开启公网访问 Set-AzRedisCache -Name <你的Redis缓存名称> -ResourceGroupName <资源组名称> -PublicNetworkAccess Enabled
方法3:通过az resource update修改通用资源属性
使用通用资源更新命令时,需指定Redis的资源类型,并定位到正确的属性路径:
# 关闭公网访问 az resource update --resource-group <资源组名称> --name <你的Redis缓存名称> --resource-type "Microsoft.Cache/Redis" --set properties.publicNetworkAccess=Disabled
方法4:PowerShell中使用Invoke-AzRestMethod发起PATCH请求
若无法使用CLI或专属PowerShell命令,可通过REST API PATCH调用修改:
- 构造JSON格式的PATCH请求体:
[ { "op": "replace", "path": "/properties/publicNetworkAccess", "value": "Disabled" } ]
- 执行PowerShell命令:
$resourceId = "/subscriptions/<订阅ID>/resourceGroups/<资源组名称>/providers/Microsoft.Cache/Redis/<你的Redis缓存名称>" $patchBody = '[{"op":"replace","path":"/properties/publicNetworkAccess","value":"Disabled"}]' Invoke-AzRestMethod -ResourceId $resourceId -Method PATCH -Payload $patchBody
若要开启公网访问,将请求体中的
value改为Enabled即可。
内容的提问来源于stack exchange,提问作者Bub
相关产品推荐
相关产品推荐

