昨天被阿里云的這個酷炫大屏吸引了!

我等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,獲得獨家整理的學習資源和日常干貨推送,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/5955.html
標籤:Java
