繁体   English   中英

Azure Blob 存储触发器函数未触发

[英]Azure Blob Storage trigger Function not firing

创建使用应用服务计划进行托管的 Azure 函数 blob 触发器模板时,该函数在配置为“始终开启”时正确触发。 我通过在 Azure 控制台中运行应用程序并通过 Microsoft Azure 存储资源管理器添加文件进行了测试。 在查看函数的Monitor屏幕时可以找到这些触发器的日志。

使用 Blob 存储模板创建相同的函数但这次选择“消耗”而不是应用服务计划时,监视器下没有显示任何内容。 当我在 Azure 控制台中运行测试或将文件添加到目标 Blob 容器时,这些触发器日志不会显示在monitor屏幕上。

当将新文件添加到 Blob 容器时,如何确保触发此触发器模板?

可以在两种不同的模式下运行 Azure Functions:消耗计划和应用服务计划。 您必须在创建函数应用期间选择托管计划的类型。 之后你不能改变它。

消费计划

消耗计划会在您的代码运行时自动分配计算能力,根据需要扩展以处理负载,然后在代码未运行时缩减。 您无需为空闲 VM 付费,也无需提前预留容量。 这是无服务器应用程序模型。 消费计划背后的魔法都是通过规模控制器完成的。 缩放控制器通过添加额外的函数应用实例来自动缩放 CPU 和内存资源。 缩放基于触发其功能的事件数量。

应用服务计划

在应用服务计划中,你的函数应用在基本、标准、高级和独立 SKU 上的专用 VM 上运行。 您可以通过选择不同的应用服务计划来扩展,但函数应用始终在运行。 缩放是手动完成的,或者您可以启用自动缩放。

由于性质不同,应用服务计划在启用后始终可用,因此它几乎立即触发。 在基于消耗的计划中,如果不使用它,它会进入空闲模式。

补充参考:

https://stackoverflow.com/a/54094025/6049604

希望能帮助到你。

Mohit提供的解释是对的,但我想在我测试后添加一些关于它的信息。

我在我身边再次测试,第一次测试时,该功能被blob存储成功触发。 第二次,我将函数留在那里片刻,然后将文件上传到 Blob 存储。 大约 13 分钟后,我才看到登录“监控”屏幕。

我觉得有两个原因,一个是Mohit提到的,消费计划会导致功能闲置一会儿。 据我所知,如果我们将函数留在那里大约 20 分钟,它会进入睡眠状态(不是热启动)。 因此,当文件上传到 blob 存储时,它需要几分钟才能启动。 然后“监视器”也需要大约 5 分钟才能显示登录屏幕。

由于上述两个原因,我等待了大约13分钟才能看到“监视器”中的日志。 所以也许你没有看到日志,因为它出现得太晚了。 对于这个问题,我觉得你可以选择不在乎费用的app服务计划或者不在乎等待时间的消费计划。(或者选择F1:免费的app服务计划) .

希望对你的问题有所帮助~

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM