首先,我们进入云服务器控制台,搜索并进入云函数功能,然后点击【新建】按钮,来创建一个新的云函数
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
云服务器云函数控制台
接下来,在基础信息界面中,我们选择NodeJS语言进行开发,同时,我们并不需要云服务器提供的函数模板,所以直接选择了空白模板。当然这里假如读者需要其他语言,那么根据自身情况直接进行选择即可。
修改云函数基本配置
点击下一步按钮后,进入函数配置界面,修改了描述信息后,其他的选项我们无需改变,直接点击页面最下方的完成按钮即可
函数配置界面
点击完成后,回到已创建的云函数列表,点击我们刚刚创建的云函数的名称,进入云函数编辑界面
云函数列表页
在云函数编辑界面,进入触发方式选项卡,点击添加触发方式按钮
触发方式选项卡
在添加出发方式界面中,我们选择COS触发,然后选择要监听的COS Bucket,事件类型选择Put方法创建(由于我使用的是hexo-cos-deploy插件,其上传文件方式为PUT,所以我使用的是PUT方法创建选项,读者根据自身情况可以自行选择)
由于每次上传文件都会触发云函数的执行,也就是说,博客一旦更新涉及到了10个文件改动,那么就会触发10次云函数的执行,这并不是我们想要的,一次更新不管更新几个文件,最后执行一次触发即可,所以最终我选择了只有根目录中index.html文件被上传的时候才触发云函数,这样就能控制了一次更新,只执行一次触发。
20191109173049.png
接下来,我们编写代码,首先,在本地创建一个文件夹,把云服务器的SDK复制到该文件夹中,然后创建index.js文件,我们的代码就在index.js中写,代码我就不具体讲解了,读者需要的话自行去复制修改。(读者记得修改代码中的secretID和secretKey,还有要刷新的CDN目录。)
'usestrict';exports.main_handler=(event,context,callback)=>{consttencentcloud=require('./tencent-cloud-sdk/')constCdnClient=tencentcloud.cdn.v20180606.Client;constmodels=tencentcloud.cdn.v20180606.Models;constCredential=tencentcloud.common.Credential;constClientProfile=tencentcloud.common.ClientProfile;constHttpProfile=tencentcloud.common.HttpProfile;letcred=newCredential("secretID","secretKey");lethttpProfile=newHttpProfile();httpProfile.endpoint="cdn.tencentcloudapi.com";letclientProfile=newClientProfile();clientProfile.httpProfile=httpProfile;letclient=newCdnClient(cred,"ap-beijing",clientProfile);letreq=newmodels.PurgePathCacheRequest();letparams='{"Paths":["https://blog.lemonit.cn/"],"FlushType":"delete"}'req.from_json_string(params);console.log('start')client.PurgePathCache(req,function(errMsg,response){if(errMsg){console.log('failed')console.log(errMsg);return;}console.log('success')console.log(response.to_json_string());});};
我们把整个文件夹打包,然后在控制台中上传zip文件,最后控制台效果如下
云函数控制台最终效果
确认没问题后,我们点击保存按钮即可。
回到我们电脑中,编写完新的博客内容后,使用hexo d命令上传新博客内容到COS中
上传博客到COS
这时候,我们去云服务器的云函数控制台可以看到,我们的云函数已经触发成功,可以在右侧看见本次触发云函数所执行的所有日志
云函数触发成功
我们再去云服务器的CDN控制台,可以看到我们通过云函数提交的刷新CDN缓存任务已经执行完毕啦
CDN控制台
好啦,我们去博客首页看一下,我们本篇文章已经更新到首页啦