Serverless开发流程及运行原理(中)

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: Serverless开发流程及运行原理(中)

Java

image.png

  • • 上图代码中入口函数handler是回调函数,其他函数都是async函数
  • • callback的第一个参数是错误信息,第二个参数是返回值,如果函数运行正常没有报错,callback第一个参数返回空值。


触发器及事件对象


Faas接收到触发器产生的事件之后会根据触发器信息生成event对象,以event为参数调用函数


Http触发器

image.png

http触发器会根据http请求和请求参数生成事件,然后以参数形式传递给函数。那么http函数触发器的入口函数中的request和response参数具体由哪些属性组成?

http触发器request参数

image.png

通过以下这种方式获取request中的body信息

image.png


API网关触发器

image.png

用API网关接收http请求,然后产生事件,将事件传递给Faas,Faas将函数执行完毕之后,将函数返回值传递给API网关,API网关再将返回值包装为Http响应返回给用户

Lambda API网关触发器event参数示例


image.png

http触发器使用起来更简单,API网关触发器功能更加丰富比如ip黑名单,流量控制等


定时触发器

image.png

小结

  • • 每个云厂商都实现与自己相关的触发器,比如文件存储触发器、消息触发器、数据库触发器
  • • 触发器决定了一个Serverless应用如何提供服务也决定了代码应该如何编写
  • • 丰富的触发器可以让应用的功能更加强大,不同的触发器的额外属性不同也给编程带来了麻烦
  • • 将业务逻辑拆分到入口函数之外,保持入口函数的简洁,这样业务代码就与触发器无关了


日志输出

在Serverless中,日志输出和传统应用的日志输出没有太大差别,只是日志的存储和查询方式变了

image.png

  • • 默认使用日志服务存储日志,日志服务包含日志采集和分析产品并设置报警项。
  • • 各个云厂商的Faas使用自己的日志服务来存储函数日志。
  • • Faas平台也提供了基本的函数监控,包括函数的运行时长,内存使用


异常处理

image.png

  • • 虽然在Serverless中一个函数的异常,只会影响这一次函数的运行,不会使得整个系统崩溃,但是在编写代码时,也需要充分考虑程序的异常,保证代码的健壮性,进一步提升系统稳定性。
  • • 代码编辑可以在云端进行,而不仅仅在本地进行。
  • • 应用的组成是单个独立的函数而不是所有功能的集合体。
  • • 除了具体基本的函数能力之外,还需要提供便利的开发工具,丰富的触发器,完善的日志监控等其他服务集成,这些是在做技术选型的时候需要考虑的问题。

执行上下文重用问题案例分析


image.png

image.png

为函数设置一个定时触发器,每分钟执行一次。这段代码在本地执行是没有问题的,每次执行函数都会获取一个新的时间,然后查询数据。

但在Serverless中就存在两个比较严重的问题:

  • • 函数并发限制
  • • 执行上下文重用

这个案例的现象是每次查询的结果都是一样的。

要想深刻的理解问题原因呢需要先了解Serverless的运行原理


Serverless运行原理


Serverless运行原理本质上就是函数的运行原理

接下来从三个角度来叙述下。


函数调用链路:事件驱动函数执行

在案例中设置了一个定时触发器,函数每分钟都会执行一次,这是因为定时触发器会产生一个事件,Faas平台会接收各种事件,当时间来临的时候会根据事件属性来执行函数,这个过程叫事件驱动。



相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
4月前
|
运维 负载均衡 Serverless
函数计算产品使用问题之在同一地域同一时刻最多可以同时运行多少个函数实例
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
存储 缓存 监控
函数计算产品使用问题之调用sd生图时,怎么保证高并发场景正常运行
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
Kubernetes 安全 Serverless
Kubernetes云原生问题之在Serverless Container中,Pod运行如何解决
Kubernetes云原生问题之在Serverless Container中,Pod运行如何解决
73 5
|
5月前
|
消息中间件 运维 Serverless
函数计算产品使用问题之如何限制同一时间只能运行一个函数实例
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
存储 Serverless 文件存储
函数计算产品使用问题之如何让SDXL模型在函数计算FC中运行并生成图像
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
存储 缓存 Serverless
函数计算操作报错合集之如何处理运行时报错:“Function time out after 600 seconds”
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
5月前
|
Serverless Go C语言
函数计算产品使用问题之如何在Golang运行时环境中解决glibc依赖问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
人工智能 Serverless API
函数计算产品使用问题之如何在一个Docker容器内运行一个持续监听特定端口的应用程序
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
人工智能 运维 安全
函数计算产品使用问题之设置了每40分钟运行一次任务,没有按照预期执行,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
运维 监控 JavaScript
函数计算产品使用问题之将自定义层(nodejs 20)添加到了函数中,本地运行没有问题,但在函数计算中出现问题,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章

相关产品

  • 函数计算