目前阿里云的函数计算服务只支持 Nodejs、Python、PHP、Java、.Net。Deno 马上发布 1.0 正式版,于是我为阿里云打造了可运行 Deno 的 Serverless 环境。
GitHub 地址 :github.com/justjavac/deno_serverless_aliyun。
阿里云 serverless 除了支持几个主流平台外,还提供了 Custom Runtime 功能,也就是自定义的执行环境。本文基于 Custom Runtime 为阿里云函数计算提供了 Deno 运行时。
实现一个 Custom Runtime,只需要满足以下 3 个条件:
创建一个 HTTP Server,监听在固定端口(端口可以读取环境变量
FC_SERVER_PORT
,默认为9000
)。HTTP Serverr 需要在 15 秒内完成启动。
connection 最好设置为 keep alive,请求超时时间至少设置在 15 分钟以上。
Custom Runtime 本质上是一个 HTTP Server,代码里面包含一个名为 bootstrap 的启动文件,之后这个 HTTP Server 接管了函数计算系统的所有请求,包括事件调用或者 HTTP 函数调用等。
![](https://i-blog.csdnimg.cn/blog_migrate/85c5969327501fd6eff0a3647830f34d.png)
我们使用官方命令行工具 funcraft 初始化一个函数。默认的选项是没有 custom 的,因此我们初始化一个 Nodejs 环境,然后再修改 template.y