使用CodeArts发布OBS,函数工作流刷新CDN缓存

摘要:上次通过OBS和CDN部署来Hexo网站,但是每次我们不可能都自己编译然后在上传到OBS,不然太麻烦了,所以我们需要构建流水线,通过PUSH Markdown来发布文章。

本文分享自华为云社区《使用软件开发生产线CodeArts发布OBS,函数工作流刷新CDN缓存》,作者:熊大不大 。

上次通过OBS和CDN部署来Hexo网站,但是每次我们不可能都自己编译然后在上传到OBS,不然太麻烦了,所以我们需要构建流水线,通过PUSH Markdown来发布文章,这样方便又简单,我们大概流程如此。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

好来废话不多说开干。

第一步gitee上面拥有一份Hexo代码

这个不用多说,申请代码仓库,提交自己博客代码。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

第二步华为云申请CodeArts

这个是免费的,新建一个免费空间最多5人使用,自己使用即可地址 CodeArts地址,先点击新建项目,选择DevOps全流程示例项目,输入项目名称点击OK,返回页面在点击进去项目,能看到有很多项目流程菜单。

第三步新建流水线

新建流水线之前我们先新建编译构建

1.新建任务,名字取blog

2.选择源码源为码云,第一次需要授权,Endpoint实例新建,根据提示授权即可

3.选择代码仓库,在选择分支下一步选择NPM构建然后修改脚本

export PATH=$PATH:~/.npm-global/bin
 #设置缓存目录
 npm config set cache /npmcache
 npm config set registry https://repo.huaweicloud.com/repository/npm/
 npm config set disturl https://repo.huaweicloud.com/nodejs
 npm config set sass_binary_site https://repo.huaweicloud.com/node-sass/
 npm config set phantomjs_cdnurl https://repo.huaweicloud.com/phantomjs
 npm config set chromedriver_cdnurl https://repo.huaweicloud.com/chromedriver
 npm config set operadriver_cdnurl https://repo.huaweicloud.com/operadriver
 npm config set electron_mirror https://repo.huaweicloud.com/electron/
 npm config set python_mirror https://repo.huaweicloud.com/python
 npm config set prefix '~/.npm-global'
 #如需安装node-sass
 #npm install node-sass --verbose
 #加载依赖
 npm install --verbose
 #默认构建 以上都是系统默认的 才是自己修改 tar.gz就当做备份
 npm run build
 tar -zcvf blog.tar.gz public
 #这个生成zip包给OBS
 cd public
 zip -r blog.zip *

4.需要新增文件上传到OBS上去,主要配置如下:产物路径配置,桶名配置。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

然后保存执行,看是否有zip产物到OBS桶下面

使用CodeArts发布OBS,函数工作流刷新CDN缓存

5.新建流水线配置源,然后新增任务,然后把刚才的编译构建的任务添加接口,部署不需要,因为这里是编译完毕直接上传obs桶的

第四步开启数据处理,把zip文件自动解压到桶目录下

如图下:

使用CodeArts发布OBS,函数工作流刷新CDN缓存

新建规则,事件选择ObjectCreate,前缀是包名全程不含后缀,后缀默认zip,解压路径默认,IAM委托根据链接新建一个只容许操作OBS的全新。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

清除CDN缓存, 使用函数工作流来

1.华为云新增一个函数工作流,函数类型是事件函数、区域我选广州、函数名自己取blogDeploy,运行时我选来14.18,现在有最新版本16了。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

2.编写代码

第一个文件index.js

const refreshTask = require("./refreshTask")
exports.handler = async (event, context) => {
 const logger = context.getLogger();
 const urls = context.getUserData('urls')
 logger.info(JSON.stringify(event))
    logger.info('刷新的地址', urls)
 const token = context.getToken()
 const t = await refreshTask(token, urls.split(';'))
 const output =
 {
 'statusCode': 200,
 'headers':
 {
 'Content-Type': 'application/json'
 },
 'isBase64Encoded': false,
 'body': JSON.stringify(t),
 }
 return output;
}

第二个文件 refreshTask.js

const https = require("https");
function refreshTask(token, urls) {
 return new Promise((resovle) => {
 const data = JSON.stringify({
 refresh_task: {
                type: "directory",
 urls
 }
 });
 const options = {
            port: 443,
            hostname: "cdn.myhuaweicloud.com",
            path: "/v1.0/cdn/content/refresh-tasks",
            method: "POST",
            headers: {
 "X-Auth-Token": token,
 "Content-Type": "application/json",
 "Content-Length": data.length
 }
 };
 const req = https.request(options, (response) => {
 let todo = "";
 // called when a data chunk is received.
 response.on("data", (chunk) => {
 todo += chunk;
 });
 // called when the complete response is received.
 response.on("end", () => {
 console.log(JSON.parse(todo));
 resovle(JSON.parse(todo))
 });
 });
 req.write(data);
 req.on("error", (error) => {
 console.log("Error: " + error.message);
 });
 })
}
module.exports = refreshTask;

使用CodeArts发布OBS,函数工作流刷新CDN缓存

3.设置环境变量和触发器,环境变量设置为urls,值为https://www.webfan.cn/;https://webfan.cn/你需要刷新你的域名

使用CodeArts发布OBS,函数工作流刷新CDN缓存

触发器设置为OBS触发,桶名:放博客的桶,事件是ObjectCreated,名字自取,前缀index,后缀html,我们只识别index.html即可。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

4.设置权限托管,我们OBS需要获取token来请求CDN服务,所以需要委托代理授权。

点击权限—创建委托,委托名字自己取,委托类型选云服务,云服务选择搜索函数工作流,持续时间永久。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

然后下一步选择授权项目CDN RefreshAndPreheatAccess,点击完成,可以查看到自己权限可以使用 CDN RefreshAndPreheatAccess。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

然后在选择委托保存。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

然后在自己配置测试OBS。

使用CodeArts发布OBS,函数工作流刷新CDN缓存

查看日志

使用CodeArts发布OBS,函数工作流刷新CDN缓存

好来一个完整的发布流程完整来,在本地我们写来一份MD,然后通过PUSH之后,过几分钟则可以看到自己写的内容已经自动部署到OBS了,然后网站自动刷新缓存,非常方便。

 

点击关注,第一时间了解华为云新鲜技术~

原文链接:https://www.cnblogs.com/huaweiyun/p/17318297.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用CodeArts发布OBS,函数工作流刷新CDN缓存 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • c# 如何自己实现一个ORM框架

    下面是关于“C#如何自己实现一个ORM框架”的完整攻略,包含两个示例说明。 简介 ORM(Object-Relational Mapping)框架是一种将对象模型和关系数据库之间进行映射的技术。在本攻略中,我们将介绍如何使用C#自己实现一个ORM框架,包括创建数据模型、映射关系数据库、实现CRUD操作等步骤。 步骤 在使用C#自己实现ORM框架时,我们可以通…

    云计算 2023年5月16日
    00
  • 倪光南:中国将借云计算成IT强国 – 狼人:-)

    倪光南:中国将借云计算成IT强国 2011-09-24 00:05 狼人:-) 阅读(156) 评论(0) 编辑 收藏 举报 浪潮在北京发布了云海IN-Cloud的云计算战略。会上,中国工程院院士、中国电子学会云计算专家委员会副主任委员倪光南在会上指出,当前,云计算已经成为在我国IT产业的焦点之一。云计算和物联网等的诞生,是生产工具新的变革,势必会对IT产业…

    云计算 2023年4月12日
    00
  • 读书笔记丨理解和学习事务,让你更好地融入云原生时代

    摘要:分布式事务与云原生技术有很强的关联,可以帮助云原生应用程序实现高效的分布式事务处理。 本文分享自华为云社区《理解和学习事务,让你更好地融入云原生时代》,作者: breakDawn。 随着云原生的概念越来越火,服务的架构应该如何发展和演进,成为很多程序员关心的话题。大名鼎鼎的《深入理解java虚拟机》一书作者于21年推出了新作《凤凰架构》,从这本书中可以…

    云计算 2023年5月8日
    00
  • 虚拟化与云计算 – 读书笔记

      第1章 数据中心的构建与管理 数据中心的服务器按照类型可以分为塔式服务器、机架式服务器和刀片服务器这三大类。 塔式服务器   机架式服务器 它的尺寸有统一的标准:服务器的宽度为19英寸,高度以U为单位(1U=1.75英寸)。   刀片服务器     第2章 虚拟化概论   服务器虚拟化的实现方式   在x86体系结构中,处理器有4个运行级别,分别为Rin…

    云计算 2023年4月12日
    00
  • 比特币挖矿软件有哪些?比特币挖矿步骤及教程

    比特币挖矿软件有哪些?比特币挖矿步骤及教程 1. 比特币挖矿简介 比特币挖矿是指通过计算机算力来验证比特币交易并获得比特币奖励的过程。比特币挖矿需要使用专门的软件和硬件设备,以确保计算机能够高效地进行挖矿操作。 2. 比特币挖矿软件 以下是几种常用的比特币挖矿软件: CGMiner:CGMiner是一种开源的比特币挖矿软件,支持多种硬件设备,包括ASIC、F…

    云计算 2023年5月16日
    00
  • asp.net基于JWT的web api身份验证及跨域调用实践

    ASP.NET基于JWT的Web API身份验证及跨域调用实践 本文将详细讲解 ASP.NET 基于 JWT 的 Web API 身份验证及跨域调用实践,帮助读者理解如何构建一个基于 JWT 的 API 并使用跨域调用这个 API。 什么是JWT JWT (JSON Web Token)是一个开放标准(RFC 7519),用于在各方之间安全地传输信息。它可以…

    云计算 2023年5月17日
    00
  • 云栖直播《云计算时代的企业容灾体系及能力建设精讲》(下)PPT资料整理

    云栖直播《云计算时代的企业容灾体系及能力建设精讲》(下)PPT资料整理 非常荣幸,今年三月份受阿里云MVP团队邀请,在云栖直播平台和钉钉平台上做了两期直播节目,与阿里云MVP以及全国各地ACE开发者一起分享了我对云计算时代的企业容灾体系及能力建设的一些认识。做完节目之后,许多同学给了我很多意见和建议,让我受益良多,非常感谢大家的支持和鼓励!针对大家比较集中的…

    云计算 2023年4月13日
    00
  • 云计算时代的数据库研究

    1 引言 随着云计算时代的到来,各种类型的互联网应用层出不穷,对与此相关的数据模型、分布式架构、数 据存储等数据库相关的技术指标也提出了新的要求。虽然传统的关系型数据库已在数据存储方面占据了不可动摇的地位,但由于其天生的限制,已经越来越无法满足 云计算时代对数据扩展、读写速度、支撑容量以及建设和运营成本的要求。云计算时代对数据库技术提出了新的需求,主要表现在…

    云计算 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部