Azure Functions:生命周期如何运作?
Azure Functions: How does the life-cycle work?
我 运行 遇到了 Azure Functions 的一些问题,其中一个 Function App 部署正确并且运行良好,现在声称缺少依赖项 (NodeJS) 并且在第二天测试时出错。如果我了解 Azure Functions 如何工作的生命周期,我想我可以更轻松地进行故障排除和修复。
任何人都可以解释生命周期或指出我似乎找不到的文档吗?
例如,我正在使用持续部署。使用此方法似乎有一个默认值 deploy.cmd 用于:
- Git clone/pull 仓库到 D:\Site\repository
- 运行 在存储库上安装 npm。
- Kudosync(不管这意味着什么)这些文件到 D:\Site\wwwroot
这一切都很完美。我想知道接下来会发生什么。
例如该函数在一段时间内未使用,因此我假设它会停止运行并被占用 "out-of-order"?
再次访问时,需要重新启动一些东西。
- 它是否再次经历部署过程(看起来不像)。
- What/where/how 是否将文件还原回实例?
- 这与缩放应用程序时使用的过程相同吗?
当您将某些内容部署到 Azure Functions 时,有几个选项,但大多数都会通过您的 .scm 站点(又名 Kudu)。 Kudu 为您与文件系统交互,这通常是某种网络共享(对于消费计划,它是 Azure 文件;对于应用服务计划,它内置于应用服务中)。
假设我通过 Kudu git push
将内容添加到我的 Function App,内容更新后,Kudu 会将存储库中的内容 "deploy" 发送到 ./site/wwwroot
运行 任何部署脚本后的文件夹。
Function App 的宿主随后会看到文件更改,并获取对您的 Functions 的更改。如果给定实例上的函数将任何内容写入磁盘,其他实例也会看到它。
这是一个简化得多的示意图:
正如 Fabio 提到的,我们现在有一个 open issue 函数需要加载大量文件(即使它只是 1 个 require 语句,也可能有数百个文件需要加载)这取决于)导致它们第一次加载异常长时间,因为 Azure 文件处理大量请求的速度很慢,尤其是在缩放负载下。我们有计划在不久的将来解决这个问题。同时,您可以使用应用服务计划或减少依赖文件的数量(即使内容大小大致相同)。
我 运行 遇到了 Azure Functions 的一些问题,其中一个 Function App 部署正确并且运行良好,现在声称缺少依赖项 (NodeJS) 并且在第二天测试时出错。如果我了解 Azure Functions 如何工作的生命周期,我想我可以更轻松地进行故障排除和修复。
任何人都可以解释生命周期或指出我似乎找不到的文档吗?
例如,我正在使用持续部署。使用此方法似乎有一个默认值 deploy.cmd 用于:
- Git clone/pull 仓库到 D:\Site\repository
- 运行 在存储库上安装 npm。
- Kudosync(不管这意味着什么)这些文件到 D:\Site\wwwroot
这一切都很完美。我想知道接下来会发生什么。
例如该函数在一段时间内未使用,因此我假设它会停止运行并被占用 "out-of-order"?
再次访问时,需要重新启动一些东西。
- 它是否再次经历部署过程(看起来不像)。
- What/where/how 是否将文件还原回实例?
- 这与缩放应用程序时使用的过程相同吗?
当您将某些内容部署到 Azure Functions 时,有几个选项,但大多数都会通过您的 .scm 站点(又名 Kudu)。 Kudu 为您与文件系统交互,这通常是某种网络共享(对于消费计划,它是 Azure 文件;对于应用服务计划,它内置于应用服务中)。
假设我通过 Kudu git push
将内容添加到我的 Function App,内容更新后,Kudu 会将存储库中的内容 "deploy" 发送到 ./site/wwwroot
运行 任何部署脚本后的文件夹。
Function App 的宿主随后会看到文件更改,并获取对您的 Functions 的更改。如果给定实例上的函数将任何内容写入磁盘,其他实例也会看到它。
这是一个简化得多的示意图:
正如 Fabio 提到的,我们现在有一个 open issue 函数需要加载大量文件(即使它只是 1 个 require 语句,也可能有数百个文件需要加载)这取决于)导致它们第一次加载异常长时间,因为 Azure 文件处理大量请求的速度很慢,尤其是在缩放负载下。我们有计划在不久的将来解决这个问题。同时,您可以使用应用服务计划或减少依赖文件的数量(即使内容大小大致相同)。