昨天被阿里云的这个酷炫大屏吸引了!

我等85后开发者居然这么少!挺好奇到底什么鬼东西都是90、95后在玩?就深入看了一下。

这是一个关于Serverless的体验活动,Serverless在国内一直都处于不温不火的状态,所以很多开发者其实都不太了解Serverless到底是啥!

如果你也有这样的好奇,那么可以跟我一样来体验一下,简单的写个Hello World,有个最直观的感受这个充满未来感产品吧!

P.S. 参加活动,加入钉钉群还能每天抽奖一次,有机会赢取AirPods、高达PG模型(我喜欢的)、Cherry机械键盘等丰富大礼哦!

如何参与

-【官方】活动主页:https://developer.aliyun.com/topic/yiqi/hol?utm_content=g_1000180354

-【官方】通关宝典:https://help.aliyun.com/document_detail/181573.html

官方文档还是如其他阿里项目一样的有待提高(lan)....

如果你最自己的探索能力有足够信心,可以直接通过官方文档来试试。

如果想少踩坑,可以看我下面写的超细致通关宝典,完成一个Java版本的Hello World!

第一步:进入产品列表,点击创建应用

第二步:选择“空应用”标签

  • Serverless应用服务器选择:“函数计算FC”
  • 开发语言选择:Java

第三步:填写应用名称、应用介绍,自己定义就好

第四步:点击新建的应用卡片中的“开发部署”按钮

第五步:新建 helloworld.java

内容如下:

package com.alibaba.serverless.helloworld;

import java.io.UnsupportedEncodingException;
import java.util.UUID; import com.aliyun.fc.runtime.Context;
import com.aliyun.fc.runtime.FunctionComputeLogger;
import com.aliyun.fc.runtime.FunctionInitializer;
import com.aliyun.fc.runtime.PojoRequestHandler;
import com.aliyuncs.utils.Base64Helper; /**
* 对应到部署路由中的函数名:
* com.alibaba.serverless.helloworld.helloworld::handleRequest
*/
public class helloworld implements FunctionInitializer, PojoRequestHandler<ApiGwRequest, ApiGwResponse> { /*
* 云函数运行时初始化时的回调函数。
*/
@Override
public void initialize(Context context) {
FunctionComputeLogger logger = context.getLogger();
logger.debug(String.format("RequestID is %s %n", context.getRequestId()));
} /*
* Web云函数处理入口,每次调用时的入口。
* @param request 每次请求的所有信息都在request中
*/
@Override
public ApiGwResponse handleRequest(ApiGwRequest request, Context context) {
FunctionComputeLogger logger = context.getLogger(); // 读取请求对象
String requestPath = request.getPath();
String bodyContext = "";
if (requestPath.startsWith("")) {
bodyContext = "你好,世界!";
} // 构建返回对象
ApiGwResponse response = new ApiGwResponse();
response.getHeaders().put("responseHeader", "testValue");
response.getHeaders().put("Content-type", "text/html; charset=utf-8");
boolean isBase = false;
if ( isBase ) {
try {
bodyContext = Base64Helper.encode(bodyContext, "UTF-8");
} catch (UnsupportedEncodingException e) {
isBase = false;
}
}
response.setBody( bodyContext );
response.setBase64Encoded( isBase );
response.setStatusCode(200); logger.info("Response返回:" + bodyContext );
return response;
}
}

第六步:按下图操作,提交代码

第七步:部署应用到日常环境

点击左侧工具栏的第一个图标,进入部署界面,点击“添加一条路由”。

图中2部分的内容为: com.alibaba.serverless.helloworld.helloworld::handleRequest,对应的就是之前创建的 helloworld.java 中的handleRequest法,意思就是/helloworld请求会被这个类中的handleRequest来处理。

注意,请求方法要设置为POST,后面会说为什么!

第八步:测试/helloworld接口

在部署标签边上就有一个测试工具,输入用户路径/helloworld,点击测试就可以发起请求了,获得结果如下图所示:

回过头来看一下代码,对用的body内容:

这个测试工具是不是总觉得有点怪?!是的,居然没有HTTP Request Method的选择,这个请求默认都是用POST来发的,所以在上一步中我们配置了/helloworld为POST请求,不然这里就不会成功。看官方宝典的兄弟,发现这个坑了吗?

怎么样的?你的第一次Serverless之旅还算顺利吗?

点击这里一起来试试这种未来的开发方式吧

本文首发:Serverless 初体验:快速开发与部署一个Hello World(Java版),转载请注明出处。

欢迎关注我的公众号:程序猿DD,获得独家整理的学习资源和日常干货推送。

Serverless 初体验:快速开发与部署一个Hello World(Java版)的更多相关文章

  1. .NETCore 基于 dbfirst 体验快速开发项目

    简介 今天出场是进化了多年的生成器工具,根据数据库结构(表.视图.存储过程.外键.各种类型.备注)快速生成一个项目,并自带后台管理系统.篇幅有限本文只讲解快速开发的使用过程,具体开发中的细节日后有空再 ...

  2. 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用

    Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...

  3. 家用环境下部署wifidog认证服务器(java版)

    本文所讲的是基于一个java版wifidog认证服务器的开源项目,在windows环境下搭建wifidog认证服务器配合apfree固件实现用户名密码的认证. 大致步骤如下: 一,准备 1.搭建硬件及 ...

  4. .Net Core Serverless初体验

    什么是Serverless Serverless 是一个当今软件世界中比较新的话题.它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断 ...

  5. Visual Studio 2015初体验——前端开发工作的问题

    前言 因为后台项目开发适用的VS2015,为了跟后台开发配合,前端部门也统一从VS2013升级到了VS2015. 因为C盘空间不足要先卸载,这里就不说卸载2013时花了多长时间,只说安装2015时用了 ...

  6. UliPad 初体验----python 开发利器

    学习python 有段时间,最近博客更新比较慢了,空闲时间在零零碎碎的学python ,难成文,也就没整理成博客. 学习python 最苦恼的就是没有趁手IDE ,之前学java 时 Eclipse  ...

  7. Ubuntu上部署一个简单的Java项目

    一.安装tomcat7,mysql,Java JDK,直接apt安装 $ sudo aptitude install tomcat7 $ -jdk openjdk--jre $ sudo aptitu ...

  8. CTP API 开发之二 :制作CTP java版 API

    目前上期技术CTP系统提供的API版本是C++版本 SWIG是一个能将C/C++接口转换为其他语言的工具,目前可以支持Python,Java,R等语言. 本文主要介绍Windows 32/64位平台下 ...

  9. IOS开发初体验

    IOS开发初体验 搭建开发环境 不多说什么了,开发环境的搭建太简单了,上App Store搜索XCode下载就行了,说多了都是眼泪 创建第一个IOS项目--HolleIOS 创建工程 选择工程创建位置 ...

随机推荐

  1. 【JAVA】java中int转成String位数不足前面补零例如:1->001

    String.format("%03d", 1); 0代表前面要补的字符3代表字符串长度d表示参数为整数类型 测试完数据:循环了100次 截取了一部分:

  2. artifactdescriptorexception:Failed to read artifact descriptor for xxx:jar ”

    在Eclipse中执行Maven的install命令时,报“Failed to read artifact descriptor for xxx:jar ”的错误.这可能是在下载过程中文件出现错误.或 ...

  3. 2020-06-19:多线程消费kafka的时候,开发、测试环境都能每秒10w+,但是正式环境只能1w/s,正式环境不能重启,看怎么调试?

    福哥答案2020-06-19: 答案来自群成员:基准测试. 观察 网络和磁盘的读写,实时与历史曲线,观察文件句柄/内存的使用情况.观察系统patch 基础库/运行时状态.

  4. 2020-04-17:说说redis的rdb原理。假设服务器的内存8g,redis父进程占用了6g,子进程fork父进程后,子父进程总共占用内存12g,如何解决内存不足的问题?(挖)

    福哥答案2020-04-18: 这是一道挖坑题.内存占用只会比6g多一点,不会用12g.fork+cow.

  5. C#LeetCode刷题-二分查找​​​​​​​

    二分查找篇 # 题名 刷题 通过率 难度 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30 ...

  6. C#LeetCode刷题之#26-删除排序数组中的重复项(Remove Duplicates from Sorted Array)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3622 访问. 给定一个排序数组,你需要在原地删除重复出现的元素, ...

  7. JavaScript map+parseInt 容易产生的误区

    map /** * 语法: * var new_array = arr.map(function callback(currentValue[,index[,array]]){ * // return ...

  8. JavaScript Object初始化的不同方式

    不带原型的对象,纯对象 const plaintObject = Object.create(null) 带原型的对象 const originObject = new Object()

  9. IntelliJ Idea如何解决Could not autowire. No beans of 'xxxx' type found的错误提示

    问题描述 在idea中进行开发时,经常会遇见Could not autowire. No beans of 'xxxx' type found的错误提示,这样的是不影响程序编译和运行的,但是看起来会很 ...

  10. LOJ10048. 「一本通 2.2 练习 4」Censoring

    作者是个* 题目描述 原题来自:USACO 2015 Feb. Silver 给出两个字符串\(S\)和\(T\),每次从前往后找到\(S\)的一个子串\(T\)并将其删除,空缺位依次向前补齐,重复上 ...