什么是Serverless(无服务器计算)
行业通常所说的Serverless,主要是指“无服务器计算(Serverless Computing)”。无服务器计算,并不是真的不需要服务器,而是说,对于用户,服务器变得“不可见”了。
应用场景
【场景1:实时文件处理】可以使用 Amazon S3 触发 Amazon Lambda,以便在上传数据后立即进行处理。例如,可以使用 Lambda 实时创建图像缩略图、转换视频代码、建立文件索引、处理日志、验证内容以及聚合和筛选数据。
【场景2:移动互联网后端服务】可以使用 Amazon Lambda 和 Amazon API Gateway 构建后端来验证和处理 API 请求。
【场景3:Web应用程序】通过将 Amazon Lambda 与其他AWS服务相结合,开发人员可以构建功能强大的 Web 应用程序,从而可自动扩展和收缩,并跨多个数据中心在高可用配置中运行,而无需在可扩展性、备份或多数据中心冗余方面执行任何管理工作。
创建一个Maven项目
1) pom.xml
<dependencies><dependency><groupId>com.amazonaws</groupId><artifactId>aws-lambda-java-core</artifactId><version>1.2.0</version></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.3</version><configuration><createDependencyReducedPom>false</createDependencyReducedPom></configuration><executions><execution><phase>package</phase><goals><goal>shade</goal></goals></execution></executions></plugin></plugins>
</build>
2) 编写输入类RequestClass
package example;public class RequestClass {String firstName;String lastName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public RequestClass(String firstName, String lastName) {this.firstName = firstName;this.lastName = lastName;}public RequestClass() {}
}
3) 编写输出类ResponseClass
package example;public class ResponseClass {String greetings;public String getGreetings() {return greetings;}public void setGreetings(String greetings) {this.greetings = greetings;}public ResponseClass(String greetings) {this.greetings = greetings;}public ResponseClass() {}
}
4) 编写主函数
package example;import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;public class Hello implements RequestHandler<RequestClass, ResponseClass>{ public ResponseClass handleRequest(RequestClass request, Context context){String greetingString = String.format("Hello %s, %s.", request.firstName, request.lastName);return new ResponseClass(greetingString);}
}
5) 创建lambda函数
上传jar包
测试,输入json
点击测试后查看运行结果
参考:
Amazon Lambda的功能与应用场景 | AWS Serverless_aws lambda 哪些应用-CSDN博客
https://www.cnblogs.com/wenjiayi/p/13251644.html