W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
支持端:云函數(shù)
在云函數(shù)中獲取微信調(diào)用上下文
wxContext
屬性 | 類型 | 說明 |
---|---|---|
OPENID | string | 小程序用戶 openid,小程序端調(diào)用云函數(shù)時(shí)有 |
APPID | string | 小程序 AppID,小程序端調(diào)用云函數(shù)時(shí)有 |
UNIONID | string | 小程序用戶 unionid,小程序端調(diào)用云函數(shù),并且滿足 unionid 獲取條件時(shí)有 |
ENV | string | 云函數(shù)所在環(huán)境的 ID |
SOURCE | string | 調(diào)用來源(云函數(shù)本次運(yùn)行是被什么觸發(fā)) |
CLIENTIP | string | 小程序客戶端 IPv4 地址 |
CLIENTIPV6 | string | 小程序客戶端 IPv6 地址 |
SOURCE 值跟隨調(diào)用鏈條傳遞,會(huì)表示調(diào)用鏈路情況(用英文逗號(hào)分隔),比如小程序調(diào)用云函數(shù) A,再在云函數(shù) A 內(nèi)調(diào)用云函數(shù) B,則 A 獲得的 SOURCE 為 wx_client, B 內(nèi)獲得的 SOURCE 為 wx_client,scf(微信小程序調(diào)用,然后云函數(shù)調(diào)用)。
SOURCE 的枚舉類型:
SOURCE 值 | 含義 |
---|---|
wx_devtools | 微信 IDE 調(diào)用 |
wx_client | 微信小程序調(diào)用 |
wx_http | 微信 HTTP API 調(diào)用 |
wx_unknown | 微信未知來源調(diào)用 |
scf | 云函數(shù)調(diào)用云函數(shù) |
其他 | 非微信端觸發(fā) |
如果在云函數(shù)本地調(diào)試中,ENV 會(huì)為 local,SOURCE 會(huì)為 wx_client。
請(qǐng)不要在 exports.main 外使用 getWXContext,此時(shí)尚沒有調(diào)用上下文,無法獲取得到信息。
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
const {
OPENID,
APPID,
UNIONID,
ENV,
} = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
ENV,
}
}
支持端:云函數(shù) 1.5.0
云函數(shù)中使用高級(jí)日志能力
logger
屬性 | 類型 | 說明 |
---|---|---|
log | function | 默認(rèn)等級(jí)的日志 |
info | function | 普通等級(jí)的日志 |
warn | function | 警告等級(jí)的日志 |
error | function | 錯(cuò)誤等級(jí)的日志 |
用于使用高級(jí)日志能力。
logger 方法返回一個(gè) log 對(duì)象,log 對(duì)象包含以下方法,每調(diào)用一次產(chǎn)生一條日志記錄: log:默認(rèn)等級(jí)的日志 info:普通等級(jí)的日志 warn:警告等級(jí)的日志 error:錯(cuò)誤等級(jí)的日志
所有的方法都接收一個(gè)對(duì)象,對(duì)象的每個(gè) <key, value> 對(duì)都會(huì)作為日志一條記錄的一個(gè)可檢索的鍵值對(duì),其中 value 無論類型是什么都會(huì)自動(dòng)轉(zhuǎn)成字符串
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const log = cloud.logger()
log.info({
name: 'xx',
cost: 10,
attributes: {
width: 100,
height: 200,
},
colors: ['red', 'blue'],
})
// 輸出到日志記錄中會(huì)有這么一條記錄:
// {
// "level": "info",
// "name": "xx",
// "cost": "10",
// "attributes": "{ width: 100, height: 200 }",
// "colors": "[ "red", "blue" ]"
// ..., // 其他系統(tǒng)字段
// }
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
支持端:小程序 2.12.0
小程序端調(diào)云函數(shù)傳遞大數(shù)據(jù)可用的臨時(shí) CDN
標(biāo)記需要上傳到 CDN 的文件/大字符串然后轉(zhuǎn)換成 HTTP URL 的數(shù)據(jù),必須在 callFunction 中使用。
小程序端調(diào)用云函數(shù)時(shí),如需傳遞大數(shù)據(jù)(建議 128k 以上時(shí)),可用此 CDN 方法標(biāo)記需要傳遞的數(shù)據(jù),即可以是字符串,也可以是臨時(shí)文件路徑。標(biāo)記之后,在調(diào)用云函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)上傳相應(yīng)數(shù)據(jù)到臨時(shí) CDN,最終云函數(shù)內(nèi)接收到的該字段將會(huì)是一個(gè) CDN 地址,可在云函數(shù)內(nèi)請(qǐng)求下來。
用這個(gè)方法可以避免大數(shù)據(jù)在云函數(shù)鏈路內(nèi)的傳輸,提高大數(shù)據(jù)調(diào)用時(shí)的性能,同時(shí)避免觸及調(diào)用數(shù)據(jù)的大小限制。
CDN 方法可以接收三種參數(shù)類型:
當(dāng)使用文件路徑定義對(duì)象時(shí),將在調(diào)用服務(wù) API 時(shí)自動(dòng)將相應(yīng)文件路徑對(duì)應(yīng)的文件內(nèi)容上傳至 CDN 并轉(zhuǎn)換成 CDN URL,對(duì)象定義如下: 入?yún)?
接收一個(gè)對(duì)象,對(duì)象下有如下定義的字段:
字段名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 定義對(duì)象的類型,必填 filePath |
filePath | string | 是 | 文件路徑 |
wx.cloud.callFunction({
name: 'test',
data: {
strDemo: wx.cloud.CDN('some large string'),
filePathDemo: wx.cloud.CDN({
type: 'filePath',
filePath: 'xxxxxxxx',
})
},
})
.then(console.log)
.catch(console.error)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: