新聞中心
Cloud.getWXContext(): Object
支持端:云函數(shù)
在云函數(shù)中獲取微信調(diào)用上下文
返回值
Object
wxContext
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| 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)用來(lái)源(云函數(shù)本次運(yùn)行是被什么觸發(fā)) |
| CLIENTIP | string | 小程序客戶端 IPv4 地址 |
| CLIENTIPV6 | string | 小程序客戶端 IPv6 地址 |
使用說(shuō)明
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 | 微信未知來(lái)源調(diào)用 |
| scf | 云函數(shù)調(diào)用云函數(shù) |
| 其他 | 非微信端觸發(fā) |
如果在云函數(shù)本地調(diào)試中,ENV 會(huì)為 local,SOURCE 會(huì)為 wx_client。
注意事項(xiàng)
請(qǐng)不要在 exports.main 外使用 getWXContext,此時(shí)尚沒(méi)有調(diào)用上下文,無(wú)法獲取得到信息。
示例代碼
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
const {
OPENID,
APPID,
UNIONID,
ENV,
} = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
ENV,
}
}Cloud.logger(): Object
支持端:云函數(shù) 1.5.0
云函數(shù)中使用高級(jí)日志能力
返回值
Object
logger
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| log | function | 默認(rèn)等級(jí)的日志 |
| info | function | 普通等級(jí)的日志 |
| warn | function | 警告等級(jí)的日志 |
| error | function | 錯(cuò)誤等級(jí)的日志 |
使用說(shuō)明
用于使用高級(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è)
示例代碼
// 云函數(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,
}
}Cloud.CDN(opt: string|ArrrayBuffer|Object)
支持端:小程序 2.12.0
小程序端調(diào)云函數(shù)傳遞大數(shù)據(jù)可用的臨時(shí) CDN
參數(shù)
opt: string|ArrrayBuffer|Object
使用說(shuō)明
標(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)求下來(lái)。
用這個(gè)方法可以避免大數(shù)據(jù)在云函數(shù)鏈路內(nèi)的傳輸,提高大數(shù)據(jù)調(diào)用時(shí)的性能,同時(shí)避免觸及調(diào)用數(shù)據(jù)的大小限制。
CDN 方法可以接收三種參數(shù)類型:
- String
- ArrayBuffer
- 文件路徑定義對(duì)象
當(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ì)象下有如下定義的字段:
| 字段名 | 類型 | 必填 | 說(shuō)明 |
|---|---|---|---|
| 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) 網(wǎng)頁(yè)名稱:創(chuàng)新互聯(lián)小程序教程:微信小程序云開(kāi)發(fā)SDK文檔工具類
網(wǎng)頁(yè)地址:http://fisionsoft.com.cn/article/coeihpg.html


咨詢
建站咨詢

