帮助中心

首先,我们进入云服务器控制台,搜索并进入云函数功能,然后点击【新建】按钮,来创建一个新的云函数云服务器云函数控制台接下来,在基础信息界面中,我们选择NodeJS语言进行开发,同时,我们并不需要云服务器提供的函数模板,所以直接选择了空白模板。当然这里假如读者需要其他语言,那么根据自身情况直接进行选择即可。修改云函数基本配置点击下一步按钮后,进入函数配置界面,修改了描述信息后,其他的选项我们无需改变,

当前位置: 首页  >> 新闻中心  >> 帮助中心  >> 查看详情

如何使用云服务器的云函数功能在更新COS时自动刷新云服务器CDN缓存

浏览量:1119 时间:2023-08-16 05:34:05

首先,我们进入云服务器控制台,搜索并进入云函数功能,然后点击【新建】按钮,来创建一个新的云函数

序列号 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控制台

好啦,我们去博客首页看一下,我们本篇文章已经更新到首页啦

24小时服务器机房客服
帮助中心
  • 24H在线
  • Tg纸飞机