Azure Functions:运行时如何更新活动实例?
Azure Functions: How does the runtime update active instances?
当开发人员将更新推送到他们的 Functions
代码库时,运行时是否会停止 Function
应用程序(作为高级计划托管)中的所有活动实例,然后更新它们并最终重新启动他们?还是像停止-更新-重新启动单个实例那样将更新一个一个地推出到实例,然后转到队列中的下一个实例?
将功能更新代码从本地部署到Azure时,有两个步骤。首先是更新代码,其次是重新启动函数应用程序。这是我在我身边测试的:
我在一个功能应用程序(有高级计划)中有两个功能,名为 Function1
和 Function2
。两个函数中的代码几乎相同,如下图所示。
现在请求两个函数的url触发(先触发Function1,再触发Function2,间隔1秒)。他们将打印如下图所示的日志(从 1 到 79):
现在我在log打印到79之前编辑本地函数代码发布到azure,在部署过程中,这两个函数仍然正常打印日志,直到函数app重启(请参考两个下面的屏幕截图)。
根据测试可知,在部署过程中代码更新时,函数可以运行正常,直到函数应用重启。 你的问题的答案是部署将更新所有函数代码,最后只重启函数应用程序(只重启一次)。
=================================更新=========== ====================
针对您 If the scale controller scales to multiple active instances in the same app, how are updates rolled out to each instance?
的问题。我认为它会在更新代码时允许实例 运行ning,但是当完成更新代码时,功能应用程序将重新启动,所有 运行ning 实例将在重新启动功能应用程序时被中断。
以及您 When the function app restarts, does it create only one instance or as many as the instance count before the restart?
的问题。我不认为函数应用程序会在重新启动之前创建与实例计数一样多的实例。正如您所提到的,该功能托管在高级计划中。因此,在函数应用重启后,它只会提供您在“Scale out”选项卡中为“Always Ready Instances”设置的实例数。
关于“Always ready instances pre-warmed instances”的更多信息,可以参考这篇document.
当开发人员将更新推送到他们的 Functions
代码库时,运行时是否会停止 Function
应用程序(作为高级计划托管)中的所有活动实例,然后更新它们并最终重新启动他们?还是像停止-更新-重新启动单个实例那样将更新一个一个地推出到实例,然后转到队列中的下一个实例?
将功能更新代码从本地部署到Azure时,有两个步骤。首先是更新代码,其次是重新启动函数应用程序。这是我在我身边测试的:
我在一个功能应用程序(有高级计划)中有两个功能,名为 Function1
和 Function2
。两个函数中的代码几乎相同,如下图所示。
现在请求两个函数的url触发(先触发Function1,再触发Function2,间隔1秒)。他们将打印如下图所示的日志(从 1 到 79):
现在我在log打印到79之前编辑本地函数代码发布到azure,在部署过程中,这两个函数仍然正常打印日志,直到函数app重启(请参考两个下面的屏幕截图)。
根据测试可知,在部署过程中代码更新时,函数可以运行正常,直到函数应用重启。 你的问题的答案是部署将更新所有函数代码,最后只重启函数应用程序(只重启一次)。
=================================更新=========== ====================
针对您 If the scale controller scales to multiple active instances in the same app, how are updates rolled out to each instance?
的问题。我认为它会在更新代码时允许实例 运行ning,但是当完成更新代码时,功能应用程序将重新启动,所有 运行ning 实例将在重新启动功能应用程序时被中断。
以及您 When the function app restarts, does it create only one instance or as many as the instance count before the restart?
的问题。我不认为函数应用程序会在重新启动之前创建与实例计数一样多的实例。正如您所提到的,该功能托管在高级计划中。因此,在函数应用重启后,它只会提供您在“Scale out”选项卡中为“Always Ready Instances”设置的实例数。