You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure防火墙与虚拟网络设置限制Batch账户关联的自动存储访问并解决应用包上传失败问题

解决Batch账户自动存储网络限制下的应用包上传问题

首先直接回应你的两个核心疑问:

1. 能否通过防火墙与Azure虚拟网络限制Batch关联自动存储的访问?

完全可以,但有个关键前提:Azure Batch服务本身必须能访问这个自动存储账户——因为Batch依赖自动存储来管理应用包、作业输出、任务数据等核心资源。如果限制过严导致Batch服务无法访问,就会触发你遇到的这类报错。

2. 解决New-AzBatchApplicationPackage上传失败的问题

你碰到的报错"Failed to add application package... The auto storage account keys are invalid, please sync auto storage keys.",本质不是密钥真的无效,而是Batch服务无法访问你设为“选定网络”的自动存储账户。下面是具体的修复步骤:

先搞懂命令的工作流程

当你在DevOps流水线执行New-AzBatchApplicationPackage时,实际数据流是:

  • 你的DevOps代理机器把应用包发送到Azure Batch服务的API端点
  • Batch服务再将这个包上传到关联的自动存储账户中

所以问题核心是Batch服务无法访问受网络限制的自动存储,而非你的DevOps代理需要直接访问存储。

具体修复操作

  • 允许受信任的Microsoft服务访问存储账户
    这是最省心的解决方案:在自动存储账户的防火墙设置里,找到“允许受信任的Microsoft服务访问此存储账户”选项并勾选。这个选项会自动授权Azure Batch这类托管服务访问你的存储,即使存储限制为选定网络。

  • 手动同步Batch账户的自动存储密钥(可选但推荐)
    有时候即使密钥本身有效,Batch账户也可能未同步最新的存储密钥。执行以下PowerShell命令手动同步:

    Sync-AzBatchAutoStorageKeys -AccountName $BatchAccountName -ResourceGroupName $ResourceGroupName
    

    完成后再尝试重新上传应用包。

  • 若不勾选受信任服务选项,需添加Batch服务的IP范围
    如果你不想依赖“受信任服务”选项,可以获取Batch服务所在区域的公共IP范围,将这些IP段加入存储账户的防火墙白名单。不过这种方式维护成本较高,因为IP范围可能会变动,更推荐第一种方法。

关于DevOps代理的子网设置

你已经允许了DevOps规模集代理的子网,但由于上传是通过Batch服务中转,代理只需要能访问Azure Batch服务的API端点即可。确保你的VNet出站规则允许访问Azure Batch服务(一般默认允许到Azure服务的出站流量,除非做了严格限制)。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 01:47:30