首页 > 其他分享 >FaaS运行逻辑

FaaS运行逻辑

时间:2023-01-16 17:46:45浏览次数:44  
标签:触发器 函数 代码 逻辑 实例 应用 运行 FaaS

在 Serverless 出现之前,我们要部署这样一个应用的流程。

首先为了运行我们的应用,我们要在服务端构建代码的运行环境:我们要购买虚拟机服务,初始化虚拟机运行环境,安装我们需要的应用运行环境,尽量和本地开发环境保持一致;

紧接着为了让用户能够访问我们刚刚启动的应用,我们需要购买域名,用虚拟机 IP 注册域名;

配置 Nginx,启动 Nginx;

最后我们还需要上传应用代码,启动应用。

 

纯FaaS 应用调用链路由函数触发器、函数服务和函数代码三部分组成,它们分别替代了传统服务端运维的负载均衡 & 反向代理,服务器 & 应用运行环境,应用代码部署。

 

之前需要在服务端构建代码的运行环境,而 FaaS 应用将这一步抽象为函数服务;

之前需要负载均衡和反向代理,而 FaaS 应用将这一步抽象为 HTTP 函数触发器;

之前需要上传代码和启动应用,而 FaaS 应用将这一步抽象为函数代码。

当用户第一次访问 HTTP 函数触发器时,函数触发器就会 Hold 住用户的 HTTP 请求,并产生一个 HTTP Request 事件通知函数服务。紧接着函数服务就会检查有没有闲置的函数实例;

如果没有函数实例,就去函数代码仓库中拉取你的代码;初始化并启动一个函数实例,执行这个函数,传入这个 HTTP Request 对象作为函数的参数,执行函数。再进一步,函数执行的结果 HTTP Response 返回函数触发器,函数触发器再将结果返回给等待的用户客户端。纯 FaaS 默认创建了 3 个服务。

第一个"GreetingServiceGreetingFunctionhttpTrigger"函数触发器,函数触发器是所有请求的统一入口,当请求发生时,它会触发事件通知函数服务,并且等待函数服务执行返回后,将结果返回给等待的请求。

第二个"GreetingService"函数服务,当函数触发器通知的“事件”到来,它会查看当前有没有闲置的函数实例,如果有则调用函数实例处理;如果没有,则会创建函数实例,等实例创建完毕后,再调用函数实例处理事件。

第三个"GreetingServiceGreetingFunction"函数代码,“函数服务”在第一次实例化函数时,就会从这个代码仓库中拉取代码,并构建函数实例。

 

标签:触发器,函数,代码,逻辑,实例,应用,运行,FaaS
From: https://www.cnblogs.com/muzinan110/p/17055966.html

相关文章