如何解决Azure 函数C#:如何将大量文件从 blob 容器 A 复制到另一个 blob 容器 B? 函数在 10 分钟内超时
想使用 Azure Function 将大量文件从 blob 容器 A 复制到另一个 blob 容器 B。但是,由于函数超时,面临丢失复制文件的问题。有什么方法可以巧妙地恢复它吗?是否有关于源 blob 存储的任何指示,该存储标识之前已复制/处理过,以便下一个函数可以跳过复制?
解决方法
想使用 Azure Function 从 blob 复制大量文件 容器 A 到另一个 blob 容器 B。但是,面临丢失 由于函数超时而复制文件。
您可以通过更改计划级别来避免此超时问题。例如,如果您使用应用服务计划并始终开启,则不再有超时限制。不过老实说,如果你的文件很多,而且需要很长时间,那么azure函数不是推荐的方法(函数执行的任务应该是轻量级的)。
是否有任何指示标识的源 blob 存储 之前复制/处理过以便下一个函数可以跳过复制那个?
是的,当然可以。只需在复制后添加 blob 的自定义元数据。下次复制文件时,可以先查看自定义元数据。
,这是一个很多问题。您可以:
- 复制自 comannd line or code。 AZ CLI 或 azcopy 或 .NET SDK(可扩展到其他语言 SDK)。
- 使用存储资源管理器。
- 按照鲍曼的建议使用 Azure Data Factory。
- use SSIS。
- [误]使用 Databricks,尤其是当您处理大量数据并需要可扩展性时。
#1 和 2 将使用您本地机器的互联网带宽(下载到本地然后上传),而 3、4、5 将完全在云中。因此,如果您的源和目的地在同一区域,则 1 和 2 最终会是 paying egress charges,而 3、4 和 5 则不会。
使用 Azure 函数复制文件可能是您能做的最糟糕的事情。 Azure Functions 成本与执行时间(和内存使用量)成正比。在这种情况下(因为它需要超过 10 分钟),我假设您正在移动大量数据,因此您需要为 Azure Function 付费,因为它只是在等待 I/O 完成文件传输。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。