最近接触到了阿里云的函数计算的服务,经过几天的尝试还是有所收获,因此不妨把学习过程中的点滴记录下来,方便以后温习。
什么是函数计算
根据阿里云的中的相关介绍,可以知道函数计算是事件驱动的全托管计算服务。用户无需管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。从而实现了函数即服务。更多介绍可以参考阿里云函数计算
快速建立一个函数计算服务
新建项目并引入相关的依赖
在建立一个函数计算之前,首先要在阿里云开通函数计算的服务。阿里云函数计算目前支持Java(Java8),NodeJS(nodejs6,nodejs8),Python (Python2.7,Python3.6) 3种语言。本文主要详细记录Java环境下的搭建过程。
首先在IDEA中新建一个Maven项目,若在那个在代码中正常使用函数计算,需要在pom.xml文件中加入对应的依赖:
<dependency>
<groupId>com.aliyun.fc.runtime</groupId>
<artifactId>fc-java-core</artifactId>
<version>1.0.0</version>
</dependency>
创建实现函数计算接口的类
正常导入依赖后,在java目录下新建一个实现函数计算预定义接口的类FCController。函数计算目前有 2 个预定义的接口可以实现,StreamRequestHandler以及PojoRequestHandler。我们先以StreamRequestHandler举例,查看StreamRequestHandler接口的代码:
public interface StreamRequestHandler {
void handleRequest(InputStream var1, OutputStream var2, Context var3) throws IOException;
}
StreamRequestHandler接口只定义了一个无返回值的方法,输入以及输出均以流的方式实现,而context 是函数计算在运行时生成的一个包含一些运行时的信息对象。在FCController中重写该方法:
package example;
import ...
public class FCController implements StreamRequestHandler{
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)throws IOException{
outputStream.write("Hello Function Compute".getBytes());
}
}
到目前为止,一个最简单的函数计算的代码已经编写完成。