我试图了解Cloud Function的实例及其工作方式。
我想问一个HTTP函数的例子,但我认为这个概念适用于任何类型的函数。
- 假设我有一个云功能,它为我的应用程序(名为
ssrApp
(处理SSR - 假设
1 second
每次收到请求都需要完成 - 当Cloud Function收到第一个请求时,它将启动一个实例来响应它
问题
当多个请求到来时,该实例的行为如何
发件人:https://cloud.google.com/functions/docs/concepts/exec
函数的每个实例一次只处理一个并发请求这意味着当您的代码处理一个请求时,不可能将第二个请求路由到同一个实例因此,原始请求可以使用您请求的全部资源(CPU和内存(。
这是否意味着在1 second
期间,当我的ssrApp
函数运行时,如果有人点击了我的应用程序URL,可以保证Cloud function会为第二个请求启动另一个实例?函数在执行过程中只调用sync
还是某些async
,这有关系吗?我的意思是,async
调用是否可以释放实例并行响应另一个请求?
这是否意味着在我的ssrApp函数运行的那1秒内,如果有人点击了我的应用程序URL,云函数会为第二个请求启动另一个实例?
这是一般行为,尽管无法保证调度。
函数在执行中是否只同步调用或一些异步调用有关系吗?我的意思是,异步调用是否可以释放实例并行响应另一个请求?
不,那没什么区别。如果容器正在等待异步调用,那么它仍然被认为在使用中。
2022更新
对于未来的搜索者,Cloud Functions Gen2现在支持并发:https://cloud.google.com/functions/docs/2nd-gen/configuration-settings#concurrency