邊緣計(jì)算的使用非常簡(jiǎn)單,只需要編寫好函數(shù),然后指定執(zhí)行函數(shù)的url就可以了。
1、添加函數(shù)
在云加速管理控制臺(tái),可以點(diǎn)擊“我的函數(shù)”進(jìn)入邊緣計(jì)算函數(shù)列表。
點(diǎn)擊「添加」按鈕,在彈窗中輸入函數(shù)名稱后,「確定」保存,函數(shù)就添加好了。
點(diǎn)擊具體函數(shù)的「編輯」按鈕,即可對(duì)函數(shù)進(jìn)行邊修改和測(cè)試。
在函數(shù)編輯頁(yè)面中,左側(cè)為函數(shù)編輯器,可以編寫函數(shù),帶有語(yǔ)法高亮、語(yǔ)法檢查等功能;左側(cè)下方有“回滾”、“保存”、“發(fā)布”三個(gè)按鈕
回滾:會(huì)將編輯中的函數(shù)回滾到已發(fā)布的最新函數(shù);
保存:會(huì)將當(dāng)前編輯器中的函數(shù)進(jìn)行保存,保存后的函數(shù)才能在預(yù)覽和測(cè)試中使用;
發(fā)布:會(huì)將編輯中的函數(shù)部署到節(jié)點(diǎn),在實(shí)際訪問時(shí)生效,未綁定規(guī)則的函數(shù)無法進(jìn)行發(fā)布。
在右側(cè)預(yù)覽頁(yè)面,可以在地址欄里填入希望測(cè)試的域名,并點(diǎn)擊“刷新”按鈕測(cè)試函數(shù)運(yùn)行情況,右側(cè)下方的開發(fā)工具,可以在測(cè)試中幫助調(diào)試函數(shù)。
同時(shí),函數(shù)還支持指定 method、scheme、headers以及body等參數(shù)進(jìn)行測(cè)試,點(diǎn)擊「測(cè)試」選項(xiàng)卡即可查看并編輯測(cè)試內(nèi)容。此處還支持將測(cè)試參數(shù)保存為模板,方便下次測(cè)試使用。
2、綁定觸發(fā)規(guī)則
編寫完函數(shù)后,需要將函數(shù)和指定的URL進(jìn)行綁定,當(dāng)請(qǐng)求URL與規(guī)則匹配時(shí),則綁定的函數(shù)將被觸發(fā)執(zhí)行。
觸發(fā)規(guī)則依賴于URL,因此需要在具體的域名下添加。添加位置:“我的網(wǎng)站 -> 域名 -> 邊緣計(jì)算”
點(diǎn)擊「添加」按鈕,輸入指定的 URL 并選擇要綁定的函數(shù)即可。
觸發(fā)規(guī)則支持添加多條,以適應(yīng)不同業(yè)務(wù)的處理需求。每條規(guī)則也可以根據(jù)實(shí)際需要進(jìn)行開啟或關(guān)閉。
URL 匹配規(guī)則說明:
規(guī)則綁定形如: https://.example.com/images/
一般規(guī)則:
- 規(guī)則里必須包含域名,如example.com/1.jpg。
- 規(guī)則里不能包含參數(shù),如example.com/?anything是不合法的。
- 規(guī)則中如果不包含協(xié)議,則會(huì)匹配http和https;如果指定協(xié)議,則只匹配指定的協(xié)議。如www.example.com/會(huì)同時(shí)匹配https://www.example.com/和http://www.example.com/,https://www.example.com/只匹配https://www.example.com/而不會(huì)匹配http://www.example.com/。
關(guān)于通配符「*」:
- 僅支持通配符,代表0個(gè)或多個(gè)任意字符。
- * 不能用于中綴或參數(shù)的匹配,如example.com/*.jpg或example.com/?foo=*都是不合法的。
- 多條規(guī)則都匹配時(shí),優(yōu)先匹配更精確的規(guī)則,如www.example.com/的匹配優(yōu)先級(jí)高于.example.com/*。
- * 匹配前綴時(shí),example.com/會(huì)同時(shí)匹配https://example.com/和https://www.example.com/;.example.com/只會(huì)匹配https://www.example.com/而不匹配https://example.com/。
- * 匹配后綴時(shí),https://example.com/path*,會(huì)同時(shí)匹配https://example.com/path2和https://example.com/path/readme.txt;https://example.com/path/*,則只匹配https://example.com/path/readme.txt而不匹配https://example.com/path2。
3、開發(fā)工具
如果在開發(fā)過程中需要調(diào)試Workers腳本,可以使用預(yù)覽面板底部的開發(fā)人員工具。Workers預(yù)覽的開發(fā)人員工具與Chrome或Firefox中的開發(fā)人員工具類似。
Console 在代碼中輸出console.log()時(shí),可以在console標(biāo)簽中看到輸出的內(nèi)容。
Source 可以查看運(yùn)行的代碼內(nèi)容。
Network 顯示在代碼中發(fā)出的請(qǐng)求詳細(xì)信息。
4、請(qǐng)求緩存
在使用邊緣計(jì)算時(shí),如果需要對(duì)請(qǐng)求進(jìn)行緩存,可以使用以下兩種方式:
4.1、fetch()獲取url內(nèi)容時(shí),如果url接入了云加速,那么請(qǐng)求會(huì)按照云加速中配置的CDN緩存策略,對(duì)請(qǐng)求的內(nèi)容進(jìn)行緩存。但是此時(shí),盡管對(duì)于url的請(qǐng)求無需返回源站,但是仍然要請(qǐng)求到云加速的節(jié)點(diǎn)。
4.2、使用caches,邊緣計(jì)算提供了caches。該caches可以在request發(fā)出前進(jìn)行檢查,如果該request在caches中,則無需發(fā)送請(qǐng)求,直接返回caches中緩存的response。
-- caches.default
let cache = caches.default
-- put
cache.put(request, response)
request: 可以是string或Request對(duì)象。
response: 需要緩存的Response對(duì)象。
-- match
cache.match(request)
request: 可以是string或Request對(duì)象。
如果緩存中存在該request,則返回已緩存的Response對(duì)象。
-- delete
cache.delete(request)
request: 可以是string或Request對(duì)象。