Azure Redis导入失败:指定区域存储账户未找到问题求助
Azure Redis导入任务失败排查方案
核心问题现象
自动化Redis导入任务报错:Not Found. There was no storage account called '<redacted>' in the Azure region 'Brazil South'.
- 手动网页操作、个人账号命令行执行均正常
- 服务主体登录后无法通过
az storage account list看到目标存储账户(已配置Storage Blob Data Contributor角色) - SAS URL可直接匿名访问下载文件
排查与修复步骤
1. 补全服务主体的管理平面权限
Storage Blob Data Contributor属于数据平面权限,仅能操作Blob数据;而az storage account list、Redis导入的账户存在性检查属于管理平面操作,需要订阅/资源组级别的Reader权限:
- 给服务主体添加目标订阅的
Reader角色(或资源组级别的Reader角色) - 重新登录服务主体后,执行
az storage account list验证是否能看到目标存储账户,再重试导入任务
2. 统一区域标识格式
注意到Redis显示区域为Brazil South(带空格),存储账户区域为brazilsouth(小写无空格),服务主体上下文可能存在区域解析差异:
- 执行
az redis import时显式指定--location brazilsouth参数,确保区域标识一致 - 检查脚本中是否有设置
AZURE_REGION类的环境变量,统一为brazilsouth
3. 确认服务主体当前订阅
若服务主体有权访问多个订阅,登录后默认订阅可能不是存储账户所在的订阅:
- 执行
az account show查看当前订阅ID/名称,确认是否与存储账户所属订阅一致 - 不一致则执行
az account set --subscription <目标订阅ID>切换后重试
4. 验证SAS URL的区域参数
生成SAS URL时,可显式指定--region brazilsouth参数,避免区域解析歧义:
sas_url=$(az storage blob generate-sas \ -o tsv \ --account-name $AZ_ACCOUNT_NAME \ --account-key $AZ_ACCOUNT_KEY \ --container-name $AZ_CONTAINER_NAME \ --name db \ --permissions r \ --start $(date_plus_minutes -20) \ --expiry $(date_plus_minutes 120) \ --region brazilsouth \ --full-uri)
内容的提问来源于stack exchange,提问作者ekalin
相关产品推荐
相关产品推荐

