功能特性

函数计算是一款事件驱动的全托管计算服务。本文列举了函数计算常见应用场景以及对应的功能特性,您可以结合您的业务需求选择合适的场景。

功能集

功能

功能描述

参考文档

服务管理

管理服务

服务是函数计算资源管理的单位。创建函数前必须先创建服务,同一个服务下的所有函数共享一些相同的设置,例如服务授权和日志配置等。

管理服务

管理版本

您可以为自己的服务发布一个或多个版本。版本相当于服务的快照,包括服务的配置、服务内的函数代码及函数配置,不包括触发器。

管理版本

管理别名

您可以为服务的版本创建别名。别名可以理解为指向特定版本的指针。您可以利用别名来轻松实现发布、回滚以及灰度发布等功能。别名无法脱离服务或版本单独存在。使用别名访问服务或函数时,函数计算会将别名解析为其指向的版本,调用方无需了解别名指向的具体版本。

管理别名

灰度发布

通过线上新旧版本共存的灰度发布方式,小范围验证新版本的能力,逐步切换流量到新版本。同时,可以快速地切换主版本和灰度版本,只需变更别名指向的版本号,即可完成新旧版本的平滑切换。

使用版本和别名实现灰度发布

配置网络

您在函数计算中创建的函数,默认可以通过公网调用,无法通过VPC调用。如果您需要函数能够访问VPC内的资源,或允许指定的VPC来调用函数,那么您需要手动为服务配置网络和权限。

配置网络

配置日志

通过日志服务存储函数日志,需要在函数对应的服务中配置日志项目和日志库,并授予该服务访问日志服务的权限。函数日志会打印到配置的日志库中,同一地域的同一个服务下的所有函数日志都会打印到同一个日志库中。

配置日志

配置存储

您可以为函数计算的服务配置NAS挂载或OSS挂载,配置成功后,该服务下的函数可以像使用本地文件系统一样使用NAS或OSS存储服务。

设置标签

函数计算支持将相同作用的服务资源通过标签Tag归类,便于搜索和资源聚合。您还可以通过标签功能将服务进行分组,可以实现不同角色对不同分组的服务拥有不同的操作权限。

管理标签

函数管理

管理函数

函数计算的资源调度与运行以函数为单位。函数必须从属于服务,同一个服务下可以创建多个函数,这些函数共享一些相同的设置,例如服务授权和日志配置等。但这些函数彼此相互独立,互不影响。

管理函数

管理函数层

层可以为您提供公共依赖库、运行时环境及函数扩展等发布与部署能力。您可以将函数依赖的公共库提炼到层或者使用函数计算官方公共层,以减少部署或更新函数时的代码包体积。

环境变量

您可以使用环境变量,在不修改代码的前提下灵活调整函数的行为。

环境变量

自定义DNS

自定义DNS功能适用于加速站点访问等场景。您可以使用指定的DNS服务器提供DNS解析服务。

在函数中配置自定义DNS

函数实例管理

实例生命周期

函数计算基于传统常驻应用所拓展的运行时扩展功能,能够有效帮助您消除闲置成本。每一个扩展函数对应一个回调程序,包括initializer回调、PreFreeze回调和PreStop回调。

函数实例生命周期

单实例多并发

为了进一步减少实例资源使用量,优化资源成本,降低冷启动,函数计算支持单实例多并发能力。默认情况下,函数的实例并发度为1,即一个实例同时只会处理一个请求。当您设置单实例并发度大于1后,函数计算在弹性伸缩时,充分利用完一个实例的并发度后才会创建新的实例。

设置实例并发度

健康检查

函数计算支持为函数实例设置周期性健康检查,避免请求消息被分配至异常实例而导致请求失败。

设置实例自定义健康检查

实例命令行

实例命令行操作功能能够支持在实例的真实运行环境中执行指定命令,例如登录进入实例查看实例环境信息,或者使用Profiling或Coredump等工具收集上下文信息来优化性能等。

函数实例命令行操作

函数调用

同步调用

当您同步调用一个函数时,事件将直接触发函数,函数计算会运行该函数并等待响应。当函数调用完成后,函数计算会将执行结果直接返回给您,例如返回结果、执行摘要和日志输出。

同步调用

异步调用

函数计算系统接收异步调用请求后,将请求持久化后会立即返回响应,而不是等待请求执行完成后再返回。

异步调用

异步任务

当您对函数发起异步调用时,相关请求会被持久化保存到函数计算内部队列中,然后被可靠地处理。如果您想追踪并保存异步调用各个阶段的状态,实现更丰富的任务控制和可观测能力,可以选择开启任务模式处理异步请求。

功能概览

按量实例伸缩

为了防止过度调用函数导致费用失控,函数计算对每个账号在当前地域中按量实例数设置限制。另外,函数计算还为函数的调用提供了更细粒度的按量调用实例数限制。

函数级按量实例伸缩控制

触发器管理

管理触发器

函数计算提供一种事件驱动的计算模型。函数的执行是由事件驱动的。您可以在指定函数中创建触发器,该触发器描述了一组规则,当某个事件满足这些规则,事件源就会触发关联的函数。

自定义域名

管理自定义域名

您可以为应用绑定自定义域名,可以实现通过固定域名访问应用。

配置自定义域名

开启Web应用防火墙

阿里云Web应用防火墙(简称WAF 3.0)支持对函数或者应用的业务流量进行恶意特征识别,对流量进行清洗和过滤后,将正常和安全的流量回源至后端函数,避免函数被恶意侵入。

开启Web应用防火墙

多语言运行时

代码开发

函数计算支持Java、Python、Node.js、PHP、Go及.NET Core语言,并且支持通过Custom Runtime的方式来构建其他语言的Runtime,例如Go Custom Runtime、Ruby Custom Runtime和PowerShell Custom Runtime等。为了丰富使用场景,还提供自定义镜像作为运行环境的能力。

其中,Python、Node.js、PHP除了支持通过开发者工具部署和调用SDK部署,还支持在控制台直接调试代码。

代码开发概述

编程模式扩展

函数计算基于传统常驻应用所拓展的运行时扩展功能,帮助您消除闲置成本。

编程模型扩展

应用中心

应用

阿里云Serverless应用中心提供了场景化应用创建能力以及应用导入能力。

在应用中心的创建应用页面,可以看到多种场景以及场景化应用。您可以根据业务情况选择合适的应用。

管理应用

环境

环境提供基础设施的管理能力。您可以通过环境隔离服务,例如不同地域、不同VPC间服务隔离,实现生产服务的高可用或者低延迟。

管理环境

流水线

Serverless应用中心提供基本的流水线能力,提供可编辑的、高自由度的流程运行能力,帮助用户将代码发布至Serverless应用。

监控报警

监控指标

您可以在函数计算控制台查询函数计算资源概览指标以及资源所在地域、服务和函数维度的监控指标详情。

监控指标

实例级别指标

函数计算提供实例级别指标,通过实例级别指标您可以查看vCPU使用情况、内存使用情况、实例网络情况和实例内请求数等核心指标信息。

实例级别指标

链路追踪

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

开发者工具

Serverless Devs

通过Serverless Devs,您不仅可以可插拔式地使用Serverless的服务和框架,也可以参与组件和插件的开发,提高运维效率。同时,您还可以更简单、快速地开发、创建、测试和部署项目,实现项目全生命周期的管理。

什么是Serverless Devs

WebIDE

WebIDE是函数计算提供的在线开发IDE,提供接近原生VSCode的云端开发体验。

什么是WebIDE

账号管理

配额限制

函数计算设置相关资源的使用限制,避免了误配或者代码有误造成费用不可控的问题。

使用限制

权限管理

函数计算访问阿里云其他云服务或者您需通过事件源触发函数执行时,可以为函数计算或者该事件源授予相关权限。

RAM授权

借助访问控制的RAM用户,您可以实现阿里云账号和RAM用户的权限分割,避免因暴露阿里云账号密钥,造成安全风险。按需为RAM用户赋予权限后,您可以限定拥有指定权限的RAM用户在函数计算控制台访问或管理资源。