函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。

视频介绍

什么是函数计算

函数计算是Serverless架构的一种形态,面向函数编程,基于事件驱动提供阿里云云服务之间端到端的解决方案。借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。

什么是Serverless

相对于Serverful,Serverless可以让业务人员无需关注服务器,仅聚焦于业务逻辑代码,并支持按实际使用付费。

产品架构

函数计算主要包含服务、函数、实例、运行环境、触发器、层、应用中心等功能组件,具体产品组件架构图如下图所示。

下图中涉及的功能组件的基本概念,请参见基本概念

FC产品架构

核心功能

功能项说明相关文档
多触发器函数计算支持HTTP触发器以及OSS触发器、SLS触发器等多种事件驱动触发器。此外,函数计算无缝集成事件总线EventBridge,进一步动态扩展函数的事件触发源。触发器简介
多语言执行环境函数计算支持Java、Python、Node.js、PHP、Go及.NET Core语言,并且支持通过Custom Runtime的方式来构建其他语言的Runtime,例如Go Custom Runtime、Ruby Custom Runtime和PowerShell Custom Runtime等。为了丰富使用场景,还提供自定义镜像作为运行环境的能力。代码开发概述
灰度发布通过线上新旧版本共存的灰度发布方式,小范围验证新版本的能力,逐步切换流量到新版本。同时,可以快速地切换主版本和灰度版本,只需变更别名指向的版本号,即可完成新旧版本的平滑切换。使用版本和别名实现灰度发布
单实例多并发为了进一步减少实例资源使用量,优化资源成本,降低冷启动,函数计算支持单实例多并发能力。默认情况下,函数的实例并发度为1,即一个实例同时只会处理一个请求。当您设置单实例并发度大于1后,函数计算在弹性伸缩时,充分利用完一个实例的并发度后才会创建新的实例。设置实例并发度
可观测日志服务函数计算支持将函数调用执行的日志存储至阿里云日志服务SLS,再根据日志服务中存储的函数日志来执行代码调试、故障分析、数据分析等操作。配置日志
指标监控函数计算提供多层次、多维度的监控指标。通过实时监控和性能数据采集,并进行可视化展示,为您提供端到端的监控排查路径。监控指标
链路追踪阿里云链路追踪Tracing Analysis基于OpenTracing标准,兼容开源社区,为分布式应用的开发者提供了完整的分布式调用链查询和诊断,分布式拓扑动态发现,应用性能实时汇总等功能。

函数计算与链路追踪集成,支持使用Jaeger上传链路信息,使您能够跟踪函数的执行,帮助您快速分析和诊断Serverless架构下的性能瓶颈,提高Serverless场景的开发诊断效率。

什么是链路追踪Tracing Analysis
应用中心函数计算提供一站式Serverless应用管理。从一键管理应用到快速体验,从GitOps流程到应用管理,帮助开发者快速完成应用从无到有再到多的过程。使用函数计算快速搭建管理NAS的可视化应用

使用准备

为了能够流畅地使用函数计算完成您的应用部署和调试,您需要储备以下编码经验和专业知识。

  • 了解Serverless架构的基本概念以及Serverless的FaaS、PaaS和BaaS三种形态。
  • 了解一种高级编程语言,例如Python、Node.js、Java、Go、.NetCore等,并掌握其运行环境和依赖管理等概念。
  • 了解云概念、公有网络、私有网络等网络概念。

如果您是第一次使用函数计算,建议您观看视频专区,了解Serverless和函数计算的基础信息。视频专区,请参见视频专区

工作流程

函数计算工作流程如下图所示。work_flow
流程说明如下。
  1. 开通服务。注册账号并开通函数计算服务。具体操作,请参见开通服务
  2. 开发者使用编程语言编写应用和服务。函数计算支持的开发语言,请参见代码开发概述
  3. 开发者上传应用到函数计算
    上传途径包括以下三种方式。
  4. 触发函数执行。触发方式包括事件触发和调用API触发。函数计算支持根据用户请求量自动扩缩容,该过程对您和您的用户均透明无感知。
  5. 根据函数的实际执行时长结算费用。函数执行结束后,可以通过账单来查看函数执行产生的费用,收费粒度精确到1毫秒。更多信息,请参见计费概述

使用方式

您可以使用以下方式创建和管理您的应用函数。
  • 通过函数计算控制台。控制台为您提供访问功能的Web界面。更多信息,请参见使用控制台创建函数
  • 通过Serverless Devs工具。下载对应的函数计算应用模板,然后快速开发部署函数应用。更多信息,请参见使用Serverless Devs管理函数资源
  • 调用函数计算SDK。SDK提供特定语言的API并管理许多连接细节,例如签名计算、请求重试处理和错误处理等。更多信息,请参见使用SDK执行HTTP函数

多语言支持

下表列出了用于编写函数计算函数代码的语言,以及该语言支持的编辑方式。
编程语言支持的部署方式
Node.js控制台、Serverless Devs、SDK
Python控制台、Serverless Devs、SDK
PHP控制台、Serverless Devs、SDK
JavaServerless Devs、SDK
C#Serverless Devs、SDK
GoServerless Devs、SDK
Custom RuntimeServerless Devs、SDK
Custom ContainerServerless Devs、SDK

关于Custom Runtime支持的语言列表,请参见事件函数示例HTTP函数示例

产品计费

关于函数计算的计费详情,请参见计费概述

相关链接

链接说明
函数概述介绍函数计算支持的函数类型(事件函数和HTTP函数)以及函数部署方式(使用内置运行时创建使用自定义运行时创建使用容器镜像创建),供您进行技术选型参考。
相关云服务介绍函数计算集成或支持接入的阿里云云服务。
基本概念介绍函数计算的专有名词的定义,方便您更好地理解相关概念并使用函数计算
常见问题索引汇总使用函数计算服务时的常见问题和对应解决方法。
联系我们如果您有任何反馈或疑问,欢迎加入函数计算钉钉用户群。