99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

云開(kāi)發(fā) 編寫(xiě)第一個(gè)云函數(shù)

2020-07-22 15:34 更新

在 Serverless 中,云函數(shù)是作為計(jì)算容器存在的,可以作為服務(wù)接口使用,也可以做為中轉(zhuǎn)服務(wù)使用,也可以編寫(xiě)業(yè)務(wù)邏輯。我們經(jīng)常談的 FaaS(Functions as a Service)中最核心的是云函數(shù)。如果需要簡(jiǎn)單理解,那就是寫(xiě)了一段代碼(一個(gè)函數(shù)),可以直接部署在服務(wù)器上,但是這個(gè)函數(shù)是具備伸縮性的。流量來(lái)了,可以直接將函數(shù)拉起,可以進(jìn)行資源擴(kuò)充;流量回落,可以降至 0。這里不討論業(yè)界如何實(shí)現(xiàn)冷啟動(dòng)或者 0 - 1 的優(yōu)化。

上一節(jié),我們?cè)诳刂婆_(tái)創(chuàng)建了自己的環(huán)境;這里我們就可以在控制臺(tái)編寫(xiě)第一個(gè)函數(shù)了。

創(chuàng)建函數(shù)

第 1 步:登錄云開(kāi)發(fā)控制臺(tái)
網(wǎng)址:https://console.cloud.tencent.com/tcb

第 2 步:創(chuàng)建云函數(shù)
如下圖:

  • 選擇基礎(chǔ)服務(wù)中的側(cè)邊欄【云函數(shù)】
  • 選擇之前創(chuàng)建的環(huán)境,一定要選擇在騰訊云云開(kāi)發(fā)控制臺(tái)創(chuàng)建的,目前小程序云開(kāi)發(fā)的環(huán)境管理沒(méi)有放開(kāi)。
  • 點(diǎn)擊【新建云函數(shù)】按鈕;

如果云函數(shù)不需要占用大內(nèi)存,可以選擇 128 MB;在控制臺(tái)默認(rèn)選擇的是 256 MB 。

然后,可以直接點(diǎn)擊【下一步】即可,如下圖:

編寫(xiě)函數(shù)

我們?cè)诳刂婆_(tái)創(chuàng)建函數(shù)完成,下面即可編寫(xiě)代碼了。目前控制臺(tái)默認(rèn)提供了 Cloud Studio 作為編輯器,基本滿(mǎn)足基礎(chǔ)的 Web IDE 需要。
點(diǎn)擊「函數(shù)名」,進(jìn)入函數(shù)配置和詳情頁(yè)。

我們精簡(jiǎn)默認(rèn)生成的,修改代碼成如下:

'use strict';
exports.main = async (event, context) => {
    //這里代碼比較簡(jiǎn)單
    //后期會(huì)準(zhǔn)備從數(shù)據(jù)庫(kù)取數(shù)據(jù),然后返回結(jié)果
    return {
        msg: 'Hello Serverless! Good good study !',
        maybe: '從入門(mén)到放棄'
    }
};

這里點(diǎn)擊【保存】。【保存】和【保存并安裝依賴(lài)】是有區(qū)別的:

  • 【保存并安裝依賴(lài)】需要根據(jù)該函數(shù)目錄下的 package.json 來(lái)安裝依賴(lài)庫(kù),比如 node_modules;目前我們這個(gè)例子不依賴(lài)任何庫(kù),也沒(méi)有 package.json 文件,所以不需要安裝依賴(lài);
  • 【保存】則是直接保存代碼;

如果實(shí)在分不清楚,就直接點(diǎn)擊【保存并安裝依賴(lài)】吧。

設(shè)置函數(shù)可以使用 HTTP 訪(fǎng)問(wèn)

訪(fǎng)問(wèn)函數(shù)的形式有好幾種,比如函數(shù)間調(diào)用,客戶(hù)端 SDK 調(diào)用等;當(dāng)前這里只介紹「開(kāi)啟 HTTP」觸發(fā)的形式。有的同學(xué)對(duì)觸發(fā)不理解,其實(shí)可以理解為 “使用 HTTP 訪(fǎng)問(wèn)“。

點(diǎn)擊【函數(shù)配置】,對(duì)函數(shù)進(jìn)行設(shè)置。

點(diǎn)擊【編輯】,開(kāi)始設(shè)定 HTTP 訪(fǎng)問(wèn)路徑,這里設(shè)置為 “/say-hello” 。只需要修改這一個(gè)地方點(diǎn)擊保存。

訪(fǎng)問(wèn)并驗(yàn)證返回的結(jié)果

點(diǎn)擊生成的鏈接,即可在瀏覽器看到返回的數(shù)據(jù)。

瀏覽器返回?cái)?shù)據(jù)如下:

{
  "msg": "Hello Serverless! Good good study !",
  "maybe": "從入門(mén)到放棄"
}

當(dāng)你發(fā)布完成,這個(gè)云函數(shù)就具備下面特性

  • 具備應(yīng)對(duì)流量的伸縮性,這個(gè)是云開(kāi)發(fā)底層做的,無(wú)需開(kāi)發(fā)者關(guān)系;
  • 無(wú)需安裝 Web 容器,例如 Tomcat、Apache、Node.js Server;
  • 無(wú)需設(shè)置和暴露端口;
  • 無(wú)需 Nginx 、API 網(wǎng)關(guān);
  • 可以自定義函數(shù)域名

當(dāng)然真實(shí)的服務(wù)不止這么簡(jiǎn)單,例如:

  • 需要設(shè)置跨域訪(fǎng)問(wèn)??刂婆_(tái)側(cè)邊欄【環(huán)境】、【安全設(shè)置】【W(wǎng)EB安全域名】可以開(kāi)啟;
  • 需要查詢(xún)數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù),請(qǐng)看下一節(jié);

通過(guò) HTTP URL 傳遞參數(shù)到云函數(shù)

通過(guò)前面小節(jié),我們已經(jīng)可以編寫(xiě)和發(fā)布云函數(shù)了。但是有個(gè)問(wèn)題,既然是 HTTP 服務(wù),前端傳遞的參數(shù)如何獲取呢?

http://api.serverless80.com/say-hello?name=vczero

例如上面 url 中的 name 參數(shù)該如何獲取呢?可以通過(guò) queryStringParameters 獲取。例如計(jì)算兩個(gè)數(shù)之和,代碼如下:

'use strict';
exports.main = async (event, context) => {
    //這里代碼比較簡(jiǎn)單
    //這里通過(guò) queryStringParameters 獲取請(qǐng)求參數(shù)
    let a = parseInt(event.queryStringParameters.a || 0)
    let b = parseInt(event.queryStringParameters.b || 0)
    return {
        msg: 'Hello Serverless! Good good study !',
        maybe: '從入門(mén)到放棄',
        sum: a + b
    }
}

HTTP 請(qǐng)求參數(shù)如下:

//可以點(diǎn)擊生成的路徑直接方案,需要加上 a, b 兩個(gè)參數(shù)
https://你的環(huán)境ID.service.tcloudbase.com/say-hello?a=1&b=23     

返回結(jié)果如下:

{
  "msg": "Hello Serverless! Good good study !",
  "maybe": "從入門(mén)到放棄",
  "sum": 24
}

詳細(xì)內(nèi)容可以參考 云接入

開(kāi)啟跨域訪(fǎng)問(wèn)

云函數(shù)可以通過(guò) HTTP 訪(fǎng)問(wèn)了,也可以獲取請(qǐng)求參數(shù)了,那么。在前端應(yīng)用中,使用 ajax 請(qǐng)求生成的 http url 肯定會(huì)存在跨域情況。那么,在哪設(shè)置該函數(shù)可以被「指定域名」訪(fǎng)問(wèn),其他域名不能訪(fǎng)問(wèn)呢。那就是開(kāi)啟 「安全域名」。

可以配置:

  • 域名,例如 serverless80.com;
  • IP,例如 127.0.0.1:8000;
  • localhost:8000

可以根據(jù)開(kāi)發(fā)、正式環(huán)境進(jìn)行修改;應(yīng)用正式上線(xiàn)后,記得刪除無(wú)關(guān)域名。

自定義云函數(shù)服務(wù)域名

一般情況,可以使用默認(rèn)生成的域名進(jìn)行服務(wù)調(diào)用。但是如果有自己的域名,也可以配置。因?yàn)槟J(rèn)的域名生成的比較長(zhǎng),也沒(méi)有規(guī)律,配置自定義域名顯得統(tǒng)一性高一些。

可以按照上圖進(jìn)行配置,如果沒(méi)有 SSL 安全證書(shū),可以選擇騰訊云的免費(fèi)證書(shū)。免費(fèi)證書(shū)只能配置一個(gè)域名,不能配置通配符域名,也就是子域名都需要重新申請(qǐng)。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)