You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure Cloud Shell存储创建失败及现有共享使用报错求助

解决Azure Cloud Shell文件共享的AccountPropertyCannotBeUpdated错误

我来帮你搞定这个问题——你遇到的AccountPropertyCannotBeUpdated错误,核心原因是Azure Cloud Shell对存储账户的类型有严格要求,而你用的现有存储账户(或者预创建的)不符合标准,导致Cloud Shell尝试修改它的kind属性(但这个属性是无法更新的),所以报错了。

错误根源拆解

Cloud Shell要求存储账户必须是通用v2类型(StorageV2,而且不能是以下类型:

  • Blob存储账户(仅支持Blob存储,不支持文件共享)
  • 旧版的通用v1存储账户(Storage类型)
  • 启用了分层命名空间(Hierarchical Namespace)的存储账户(比如ADLS Gen2,不兼容Cloud Shell的文件共享机制)

当你尝试把不符合要求的存储账户关联到Cloud Shell时,它会试图修改账户的kind属性来适配,但Azure不允许修改存储账户的kind,所以就抛出了这个400错误。

分步解决方案

1. 检查现有存储账户的类型

先确认你想用的存储账户是否符合要求,用Azure CLI执行:

az storage account show --name <你的存储账户名> --resource-group <你的资源组名> --query kind

如果返回的不是StorageV2,这个账户就不能用于Cloud Shell,需要重新创建。

2. 正确创建兼容的存储账户

如果你要手动创建(而非让Cloud Shell自动生成),必须满足以下条件:

  • 账户类型:选择StorageV2(通用v2)
  • 性能层:必须是标准(Premium存储不支持Cloud Shell的文件共享)
  • 复制选项:支持LRS、GRS、GZRS等(任选,但要在Cloud Shell支持的区域)
  • 禁用分层命名空间:不要勾选“启用分层命名空间”(ADLS Gen2模式)

创建完存储账户后,再创建文件共享(名称可以自定义,比如cloud-shell-share),之后再关联到Cloud Shell就不会报错了。

3. 预创建后仍失败的排查点

如果已经按要求创建了存储账户还是失败,检查这几点:

  • 存储账户所在区域是否支持Cloud Shell(大部分公共区域都支持,特殊区域比如Azure中国世纪互联部分区域可能有限制)
  • 存储账户的防火墙/网络规则是否限制了公共访问:Cloud Shell需要从公共网络访问存储账户,如果你设置了“允许选定的网络”,需要确保添加Cloud Shell的服务标签,或者暂时切换到“允许所有网络”测试
  • 文件共享的权限:确保你有存储账户的Storage File Data SMB Share Contributor或更高权限

团队共享Cloud Shell文件共享的要点

要让团队成员共用同一个文件共享,注意这些细节:

  • 给所有团队成员分配存储账户的Storage File Data SMB Share Contributor权限(遵循最小权限原则)
  • 每个成员首次启动Cloud Shell时,选择“使用现有资源”,然后指定你创建的存储账户和文件共享
  • Cloud Shell会自动在文件共享中为每个用户创建专属目录(路径:user/<用户名>),个人文件会存在这里,不会互相干扰;团队共享的文件可以放在共享目录(比如shared/)里供所有人访问

内容的提问来源于stack exchange,提问作者phydeauxman

火山引擎 最新活动