azure - 如何配置一个azure函数在另一azure函数执行完成后开始执行?

标签 azure azure-functions azure-storage

我有两个 Azure Function 应用。第一个是用 C# 编写的,从 API 请求或通过 SFTP 获取文件,以检索每个客户端的各种文件和目录,并将文件移动到 Azure Blob 存储。第二个应用程序是用 Python 编写的,依靠计时器触发器每天获取这些文件、处理它们,并将清理后的数据推送到 Azure SQL Server。

我想实时处理这些文件,而不是依赖计时器触发器。例如,如果客户端有 10 个目录,每个目录中有一个文件,一旦从 C# Azure 函数中选取了所有这些文件,我希望 Python Azure 函数自动选取这些文件并进行数据处理。实现这一目标的最佳方法是什么? C# 应用程序是否应该发布到 HTTP,然后 Python 应用程序使用 HTTP 触发器来确定所有文件何时准备好进行处理?我很难找到显示此场景示例的文档。

最佳答案

您只需为第二个函数使用 BlobTrigger 输入绑定(bind),而不是 TimerTrigger。

只要将文件/blob 添加到 blob 存储中的特定容器,您就可以触发函数运行。由于您的第一个函数将文件保存到 blob 存储,因此只需将第二个函数的输入触发器绑定(bind)更新为 blob 触发器而不是计时器触发器。这将确保第二个函数在文件添加到 Blob 存储后立即运行并处理该文件。您可以使用通配符指定使用 blob 输入绑定(bind)触发时要查找的文件。示例:samples-workitems/{name} 其中,samples-work-items 是您的容器名称,{name} 是该容器中的任何文件。

有关使用 BlobTriggers 的工作示例,请参阅:https://learn.microsoft.com/en-us/learn/modules/execute-azure-function-with-triggers/8-create-blob-trigger

关于azure - 如何配置一个azure函数在另一azure函数执行完成后开始执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64468192/

相关文章:

azure - 是否可以防止两个进程写入同一个缓存项?

azure - Azure VM快照可以安全删除吗?

azure - 使用单个 SAS token 在私有(private)存储容器中部署多个链接的 ARM 模板

azure - 适用于 Azure Blob 的 JCloud

c# - 如何在本地测试 Azure ActiveDirectory?

php - Azure 表存储响应时间慢

node.js - azure nodejs sdk的wait()函数

python - 如何通过Azure函数将csv文件上传到Azure blob存储?

azure - 如何配置 Azure Functions V3 以在本地运行时允许 50+MB 文件

Azure DevOps 使用 Azure Function 应用程序管道自托管代理