你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
存储任务的已知问题和限制
本文介绍了存储任务的限制和已知问题。 本文中显示的问题反映了服务的当前状态。 随着支持继续扩展,此列表将随时间而更改。
重要
Azure 存储操作目前为预览版,已在这些区域中提供。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款。
存储帐户区域
在公共预览版中,只能针对与存储任务位于同一区域中的存储帐户。
规模限制
比例因子 | 支持的限制 |
---|---|
每个订阅的存储任务数 | 100 |
每个存储任务的存储任务分配数 | 50 |
每个存储帐户的存储任务分配数 | 50 |
每个条件的子句的存储任务嵌套分组 | 10 |
Azure 存储操作会根据存储帐户中的数据量自动缩放其处理任务,但受内部限制的约束。 执行持续时间取决于存储帐户中的 blob 数及其在 Azure Data Lake Storage Gen2 中的层次结构。 通过路径前缀第一次执行任务可能比后续执行的用时更长。 Azure 存储操作还设计为自我调节,并允许存储帐户上的应用程序工作负载优先。 因此,根据存储帐户的最大请求限制,执行的规模和持续时间也取决于可用的事务容量。 下面是典型的处理规模,如果你有更多的可用事务容量,则规模可能会更大;如果存储帐户上的空闲事务容量较少,则它可能会更小。
在预览期间,Azure 存储操作在平面命名空间存储帐户上最多每天可以调用 2 亿个操作,最多持续 7 天。 根据满足操作条件的目标 blob 的比例,任务分配每天可能处理 2 亿到 40 亿个 blob。
对于具有分层命名空间的存储帐户,Azure 存储操作可以在预览期间最多每天调用 3500 万次操作,最多持续 7 天。 根据满足操作条件的目标 blob 的比例,任务分配每天可能处理 3500 万到 4 亿个 blob。
分配的重叠前缀
存储任务不会阻止对重叠前缀执行任务分配。 如果有多个具有重叠前缀的任务分配,则这些任务分配可能会按任意顺序处理 blob。 如果这些任务分配中的操作的执行顺序很重要,那么在配置任务时,请确保分配的前缀不会重叠。
执行的并发限制
存储任务对可以在每个存储帐户上并发执行的任务分配数有限制。 为了实现最佳性能,请确保将单个存储帐户上的任务分配计划为在它们之间根据目标对象以合理的时间间隔运行,以确保任务运行及时完成。 超出存储帐户的并发限制的任务分配执行会被暂停,直到其他分配完成。
规模对可用于存储帐户的事务容量的依赖
存储任务分配执行是自动缩放的,具体取决于存储帐户上可用的事务请求容量。 当有更多可用的事务容量时,规模会更大;当可用的事务容量较少时,规模会更小。
当目标存储帐户的可用事务容量较低时,存储任务执行可能会受到限制,导致完成任务分配执行的持续时间超出预期。
有关规模限制的详细信息,请参阅 Blob 存储的可伸缩性和性能目标。
注意
你可以请求更高的容量和流入量限制。 要请求提高限制,请联系 Azure 支持。
存储任务运行可以在没有容器权限的情况下写入报表导出容器
创建任务分配时,你要将角色分配给存储任务的系统分配的托管标识。 存储任务运行时,它只能在它的托管标识被分配了所需角色的容器上进行操作。 你在任务分配期间选择的报表导出容器则不是这样。 虽然存储任务不能在该容器中的现有 blob 上运行,但任务不要求具有正确的角色才能将报表写入该容器。
如果值为数字,则容器元数据、blob 元数据和 blob 索引标记上的字符串运算符不起作用
不能将容器元数据、blob 元数据和 blob 索引标记上的字符串运算符与数字一起用作值。 例如,equals(Tags.Value[Year], '2022'),其中值 '2022' 是一个数字,它和字符串运算符 equals 在一起无法正确计算。
分配在引用以数字开头的存储帐户名称时会失败
如果你将存储任务分配给名称以数字开头的存储帐户,则存储任务分配会失败。
除非存储任务和存储帐户位于同一资源组中,否则不会显示监视数据
如果任务分配中指定的存储任务和存储帐户位于不同的资源组中,则存储帐户的聚合监视数据不会在存储任务窗格的“监视”选项卡中正确显示。
存储任务分配执行停滞在正在进行的状态,未处理任何 blob
在大多数情况下,任务执行在 20 分钟后进行。 但是,如果任务停滞,请确保目标存储帐户具有必要的兼容配置。 例如,如果存储任务设置不可变性策略,但目标帐户未配置版本控制支持,则存储任务不会进行,最终会失败。 请确保使用存储任务以外的机制测试目标存储帐户上的每个操作,以确保操作成功。 然后,将操作添加到存储任务。
存储任务失败并出现内部错误
如果在存储帐户上尝试了不兼容的存储任务操作,则任务执行可能会失败并出现错误,或者可能会停滞在正在进行的状态。 例如,尝试在具有分层命名空间的帐户上设置 blob 索引标记的操作不会成功。 确保存储帐户配置和存储任务操作兼容。
尚不支持 Blob 索引标记和元数据中的空格字符
blob 标记的键和值中的空格字符是可接受的输入。 但是,存储任务条件无法处理空格字符。 如果键或值包含空格字符,则任务运行时会出现错误。
Blob 名称属性值包含或匹配 "." 不受支持
blob 名称子句上的字符串字段输入接受 ".doc" 或 ".pdf" 作为输入,但无法部署任务资源。 服务资源提供程序验证会捕获它并引发错误。 属性 'Name' 的值为 '.doc',它不遵循模式 '^[a-zA-Z0-9]+$'"}]}。
当在具有分层命名空间的帐户中与多个目录筛选器配合使用时,存储任务分配会在一组不完整的 blob 上操作
如果在存储任务分配中使用了多个筛选器,则不会扫描所有目录前缀来找到要对其操作的 blob。
不支持在任务分配期间在路径前缀中使用空格字符
具有分层命名空间的存储帐户将位置信息显示为 container1 / subcontainer1
,在字符串和 /
字符之间有一个空格字符。 如果在分配期间将此信息复制粘贴到路径前缀字段中,则会出现错误。
处理具有分层命名空间的帐户中的 blob 时性能降低
存储操作在启用了分层命名空间的帐户中的 blob 上运行时容量会降低。 这是一个已知问题,我们正在解决它。 此问题降低了存储任务运行处理 blob 的速率。
不支持在专用网络中对存储帐户进行操作
将存储任务分配应用于具有 IP 或网络规则的存储帐户以进行访问控制时,任务执行可能会失败。 这是因为存储任务分配需要通过公共终结点访问存储帐户,这可能会被防火墙或虚拟网络规则阻止。 若要避免此问题,需要正确配置对你的存储帐户的网络访问。
在 GRS/GZRS 帐户中迁移的区域帐户上不会触发存储任务
如果将存储帐户从 GRS 或 GZRS 主要区域迁移到次要区域,反或从次要区域迁移到主要区域,将不会触发面向存储帐户的任何存储任务,并且任何现有任务执行可能会失败。