Skip to main content

基础入门

FaaS(Function as a Service,函数即服务)是一种云计算服务模型,属于无服务器计算(Serverless Computing)的范畴。它允许开发者以函数为单位编写和部署代码,而无需管理传统的服务器基础设施。

核心概念

  • 事件驱动执行 FaaS 函数由特定事件(如 HTTP 请求、数据库变更、定时任务等)触发执行,执行完毕后自动释放资源。
  • 完全托管 云服务提供商(如 AWS Lambda、Azure Functions、Google Cloud Functions)负责管理服务器、操作系统、网络、扩展等基础设施,开发者只需关注代码逻辑。
  • 按使用付费 计费基于函数执行的时长和次数,而非预先分配的服务器资源,适合低频率或突发性工作负载。
  • 短暂生命周期 函数实例通常是临时的,执行完成后即被销毁,下次触发时可能启动新实例。

开发流程

编写函数:开发者编写处理特定任务的独立函数(如数据处理、API 调用、图像处理等)。 部署函数:将函数打包上传到 FaaS 平台,配置触发器和环境变量。 触发执行:当事件发生时,平台自动启动函数实例,执行代码并返回结果。 自动扩展:平台根据并发请求数自动创建或销毁函数实例,无需人工干预。

典型应用场景

  • 微服务 将大型应用拆分为独立函数,通过事件驱动集成。
  • API 后端 处理 HTTP 请求,实现轻量级 API 网关。
  • 数据处理 批量处理日志、ETL 任务或实时数据流(如 Kafka 消息)。
  • 事件响应 触发自动操作(如文件上传后生成缩略图)。
  • 定时任务 替代传统的 cron 作业,执行周期性任务

简单对比

特性FaaS(函数即服务)容器(如 Docker/Kubernetes)
抽象级别代码(函数)应用程序(进程)
资源管理自动分配,按使用付费手动配置资源,长期运行
部署单位单个函数完整应用或服务
冷启动可能存在延迟通常更快(已预热)
状态管理无状态(需外部存储)支持有状态(如持久化卷)
适合场景事件驱动、短时任务长期运行、资源密集型应用

最佳实践

https://www.volcengine.com/docs/6662/98457

答辩时针对论文提出的问题及整改情况: 教师主要提问记录。 1.项目解决了哪些问题。 2.项目代码的分析和漏洞检测是如何实现的。 3.如何实现的跨平台和跨工具。

学生回答问题情况。 1.系统深度集成 CodeQL 静态分析引擎,通过语义分析技术对 Python、Java、JavaScript 等主流编程语言的代码库进行系统性扫描。在完成漏洞定位后,系统自动调用 LLM 模型 API,将漏洞代码片段及上下文信息作为输入,获取贴合业务场景的修复建议。 2.针对不同类型的安全漏洞(如 SQL 注入、XSS 攻击、代码注入等),对 CodeQL 进行二次封装与扩展。首先,利用 CodeQL 将目标代码转换为可查询的数据库,为后续分析提供结构化数据基础。其次,通过编写定制化的 QL 查询语句,精准设置数据流分析中的 source(数据来源点)和 sink(危险操作点),构建完整的漏洞检测逻辑。 3.使用 B/S(浏览器 / 服务器)架构设计,用户可通过 Web 浏览器访问系统,无需安装本地客户端,实现 Windows、Linux、MacOS 等多平台无缝使用。此外,系统开发了专用的数据解析模块,能够自动识别并解析其他安全扫描工具(如 SonarQube、Checkmarx)生成的 SARIF 格式扫描结果文件,将多源漏洞数据统一整合到系统平台中。