我遇到了Azure功能的一些问题,其中功能应用程序部署得很好并且运行良好,现在声称缺少依赖项(NodeJS)并且在测试时第二天出错。如果我了解Azure Functions如何工作的生命周期,我想我可以更轻松地解决这个问题。
任何人都可以解释生命周期或指出我似乎无法找到的文档吗?
例如,我正在使用持续部署。使用此方法,似乎有一个默认的deploy.cmd用于:
这一切都很美妙。我想知道接下来会发生什么。
e.g。该函数在一段时间内未被使用,因此我认为它被旋转并被“无序”?
当它再次访问时,它需要再次旋转一些东西。
答案 0 :(得分:3)
当您向Azure Functions部署某些内容时,有一些选项可供选择,但大多数选项都会通过您.scm site(aka.Kudu)。 Kudu为您与文件系统进行交互,通常是某种类型的网络共享(对于消费计划,它是Azure文件;对于App Service计划,它已内置到App Service中)。
所以,让我们通过Kudu向我的功能应用程序说明git push
内容,在内容更新后,Kudu将获取存储库中的内容并且"部署"在运行您已经拥有的任何部署脚本后,它到./site/wwwroot
文件夹。
然后,Function App的主机会看到文件更改,并获取对您的功能的更改。如果给定实例上的函数将任何内容写入磁盘,则其他实例也会看到它。
正如Fabio所提到的,我们现在有一个open issue用于需要加载大量文件的函数(即使它只需要1个语句,也可能有数百个由于Azure文件处理大量请求的速度很慢,特别是在扩展加载时,由于Azure文件处理大量请求的速度很慢,因此导致它们第一次加载的时间非常长。我们已经有计划在不久的将来解决这个问题。与此同时,您可以使用App Service计划或减少相关文件的数量(即使内容大小大致相同)。