目前阿里云的函数计算服务只支持 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 函数调用等。
我们使用官方命令行工具 funcraft 初始化一个函数。默认的选项是没有 custom 的,因此我们初始化一个 Nodejs 环境,然后再修改 template.y