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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月15万CU 3个月
简介: Serverless开发流程及运行原理(上)

Faas产品对比图


image.png

  • • Faas平台都支持Node.js、Python、Java等编程语言,也都支持Http触发器和定时触发器
  • • 各个厂商的Faas都支持与自己云产品相关的触发器 例如:函数计算支持阿里云表格存储触发器
  • • Faas的计费都差不多,且每个月都提供一定的免费额度,每个月前100万次执行免费,前40万GB-s免费(函数每秒消耗的内存大小,例如1GB-s 函数在1GB内存的规格上执行一秒钟所消耗的内存大小),超过免费额度之后,基本上是执行一万次一分钱,执行1GB-s 0.0031617分钱。用Faas整体的费用会非常便宜,对于小应用来说,几乎是免费的
  • • 国外开发者会经常使用Lambda,相关的第三方产品和社区也会更加完善。国内经常使用函数计算,因为函数计算使用方式更符合国内开发者的习惯。


怎么用Faas去开发一个Serverless应用?


编写一个所有人都可以访问的Helloword接口,并根据请求参数进行响应


客户端请求该接口的代码

image.png


接口开发流程

一、传统应用开发流程

代码开发->初始化服务器(安装Node.js、Nginx)->启动Node.js Server(node index.js)->解析域名->配置Nginx


二、Serverless应用开发流程

代码开发->代码部署(Faas函数)->创建触发器

为函数配置http触发器,Faas自动帮你初始化运行环境,http触发器会自动为你提供一个测试域名

1、函数计算方式:在函数计算控制台上新建一个函数

image.png

注意:会用到Http触发器,函数计算的Http触发器要在创建函数时就指定

  • • request是请求信息,可以从中获取到请求参数
  • • response是响应对象,可以用它来设置Http响应数据
  • • context是函数上下文

创建触发器


image.png

用该APi Endpoint对函数进行测试,通过curl命令测试一下

如果用浏览器访问,response header中强制添加content-disposition: attachment字段,此字段会使得返回结果在浏览器中以附件的方式打开,此字段无法覆盖,使用自定义域名将不受影响。

2、Lambda方式

image.png

  • • 在Lambda控制台上先创建一个函数,为函数添加api网关触发器,没有直接提供http触发器来实现通过http请求触发函数执行。Lambda也会默认提供一个测试域名
  • • 与http触发器不同的是,api网关触发器入参是event,event对象就是http请求信息

http触发器和api网关触发器区别

函数计算的http触发器请求处理方式和express.js框架处理请求更加类似,而api网关触发器是普通函数


开发Serverless应用的基础知识

  • • Serverless应用是由一个个函数组成的,与main函数对应的就是Faas中的入口函数,一般名为handler即index.js文件中的handler函数
  • • Faas函数可以包含多个源文件,然后按照编程语言的模块机制相互引入

定义hello.js sayHello函数

image.png

将业务逻辑拆分到入口函数之外

函数定义

  • • 函数定义本质上是由云厂商、触发器和编程语言等多个条件决定的。标准的函数定义是function(event,context),event是事件对象(Serverless中的触发器被称为事件源)
  • • 部分特殊函数触发器的定义可能与标准的也不一样,比如http触发器是对标准函数触发器的进一步封装,主要是为了方便对http请求进行处理

函数上下文

包含函数运行时的一些信息

image.png

image.png


不同编程语言开发函数

Node.js和python开发是最简洁的。Node.js开发人员也比较多,前后端都很容易上手,在Serverless中最受欢迎。


Node.js

回调函数


image.png

在Node.js中,仅Lambda的入口函数支持异步async写法,其他Faas平台的入口函数只能是同步写法,对于异步函数只能使用回调函数实现,所以入口函数有第三个参数callback


Python

image.png


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

相关产品

  • 函数计算
  • 下一篇
    无影云桌面