微信小程序筆記六:serverless 云開發(fā)

騰訊云提出的云開發(fā)應(yīng)該已經(jīng)有一段時間。至于serverless是什么?不懂的同學(xué)可以移步至phodal大神的serverless。騰訊云借助于小程序快速發(fā)展走一波serverless。

它的優(yōu)勢在于弱化后端和運維概念,讓小企業(yè)和小團隊可以更容易地開發(fā)小程序胆剧。它首創(chuàng)的云調(diào)用將鑒權(quán)部分有效的封裝,讓你的接口很容易的實現(xiàn)了鑒權(quán)保護醉冤。當(dāng)然秩霍,大公司或者是具有成熟后臺團隊的公司,肯定不愿意將數(shù)據(jù)放在騰訊的服務(wù)端蚁阳,而且現(xiàn)在小程序云開發(fā)聲明收費事宜铃绒,具體可以參考配額。以國外的serverless服務(wù)的情況來看螺捐,都是按流量計費颠悬,借于騰訊的流量,云開發(fā)所消耗的費用也是一筆不小的數(shù)目定血,當(dāng)然那也是后話赔癌。哪有用別人東西不收費的情況,而且它還是“騰訊”澜沟。

云開發(fā)能力從基礎(chǔ)庫 2.2.3 開始支持(覆蓋率 97.3%灾票,查看兼容性問題),所以可以不需要考慮這點兼容性茫虽。

開始前刊苍,需要在你的代碼庫里面新建一個server的文件夾既们,如果你采用了第三方的框架,請你自行想一下解決方案正什。開發(fā)之前要搞清楚啥纸,你的代碼是寫在server還是寫在client里面,分別參考對應(yīng)服務(wù)端API小程序端API婴氮。我相信有node開發(fā)經(jīng)驗的同學(xué)應(yīng)該很清楚這部分脾拆。如果涉及到遠程調(diào)度的同學(xué),HTTP API 文檔則是提供服務(wù)端調(diào)用的API莹妒,遠程控制數(shù)據(jù)庫以及數(shù)據(jù)導(dǎo)出遷移功能。

在這里绰上,著重介紹一下旨怠,云函數(shù)和云調(diào)用。

云函數(shù)

云函數(shù)是指運行在云端的代碼蜈块,也就是你server文件夾里面的代碼鉴腻。

如果你了解不用云開發(fā)的openid獲取流程,你就知道openid的獲取是非常繁瑣的過程百揭,前端需要用過wx.login獲取一個code值爽哎,code值具有時效性。通過code值去后臺用appsecret去調(diào)取openidsessionkey器一。unionid的獲取就更為復(fù)雜课锌。

但是云函數(shù)由于是部署在騰訊云的關(guān)系,所以無需維護復(fù)雜的鑒權(quán)機制祈秕,云函數(shù)會帶上特殊的簽名機制渺贤,即可獲取天然可信任的用戶登錄態(tài),代碼如下请毛,注意node.js的代碼使用common.js的模塊化方案志鞍。

const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
  const {userInfo, a, b} = event
  // 這里獲取到的 openId 和 appId 是可信的
  const {OPENID, APPID} = cloud.getWXContext() 

  const sum = a + b

  return {
    OPENID,
    APPID,
    sum
  }
}

云函數(shù)的構(gòu)建就是前端小程序可以直接通過wx.cloud.callFunction調(diào)用。這樣方仿,團隊內(nèi)不需要后端工程師以及運維人員固棚。

// server.js
exports.main = async (event, context) => ({
  sum: event.a + event.b
})
// client.js
wx.cloud.callFunction({
  // 云函數(shù)名稱
  name: 'add',
  // 傳給云函數(shù)的參數(shù)
  data: {
    a: 1,
    b: 2,
  },
})
  .then(res => {
    console.log(res.result) // 3
  })
  .catch(console.error)

云調(diào)用

云調(diào)用是指需要access token才能調(diào)用的供服務(wù)端調(diào)用的接口,由于access token只有7200秒的有效期仙蚜,要定時去獲取此洲。對于小程序而言,測試和生產(chǎn)如果共用一個小程序鳍征,會有沖突的風(fēng)險黍翎。這部分的處理是需要非常小心的。

云調(diào)用的使用則是減輕這些功能的使用難度艳丛,無需獲取access token匣掸。openapi的使用讓小程序更面向前端趟紊,方便前端工程師的開發(fā)。下面是關(guān)于消息模版推送的代碼碰酝。在開發(fā)之前需要配置一下權(quán)限霎匈,詳情參考

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
    const result = await cloud.openapi.templateMessage.send({
      touser: cloud.getWXContext().OPENID,
      page: 'index',
      data: {
        keyword1: {
          value: '339208499'
        },
        keyword2: {
          value: '2015年01月05日 12:30'
        },
        keyword3: {
          value: '騰訊微信總部'
        },
        keyword4: {
          value: '廣州市海珠區(qū)新港中路397號'
        }
      },
      templateId: 'TEMPLATE_ID',
      formId: 'FORMID',
      emphasisKeyword: 'keyword1.DATA'
    })
    // result 結(jié)構(gòu)
    // { errCode: 0, errMsg: 'openapi.templateMessage.send:ok' }
    return result
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末送爸,一起剝皮案震驚了整個濱河市铛嘱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌袭厂,老刑警劉巖墨吓,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纹磺,居然都是意外死亡帖烘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門橄杨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秘症,“玉大人,你說我怎么就攤上這事式矫∠缒。” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵采转,是天一觀的道長聪廉。 經(jīng)常有香客問我,道長故慈,這世上最難降的妖魔是什么锄列? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮惯悠,結(jié)果婚禮上邻邮,老公的妹妹穿的比我還像新娘。我一直安慰自己克婶,他們只是感情好筒严,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著情萤,像睡著了一般鸭蛙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筋岛,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天娶视,我揣著相機與錄音,去河邊找鬼。 笑死肪获,一個胖子當(dāng)著我的面吹牛寝凌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孝赫,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼较木,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了青柄?” 一聲冷哼從身側(cè)響起伐债,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎致开,沒想到半個月后峰锁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡双戳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年祖今,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拣技。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖耍目,靈堂內(nèi)的尸體忽然破棺而出膏斤,到底是詐尸還是另有隱情,我是刑警寧澤邪驮,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布莫辨,位于F島的核電站,受9級特大地震影響毅访,放射性物質(zhì)發(fā)生泄漏沮榜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一喻粹、第九天 我趴在偏房一處隱蔽的房頂上張望蟆融。 院中可真熱鬧,春花似錦守呜、人聲如沸型酥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弥喉。三九已至,卻和暖如春玛迄,著一層夾襖步出監(jiān)牢的瞬間由境,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工蓖议, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虏杰,地道東北人讥蟆。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像嘹屯,于是被迫代替她去往敵國和親攻询。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容