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

这篇具有很好参考价值的文章主要介绍了使用CodeArts发布OBS,函数工作流刷新CDN缓存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

好来废话不多说开干。

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

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

第二步华为云申请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上去,主要配置如下:产物路径配置,桶名配置。

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

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

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

如图下:

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

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

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

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;

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


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

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

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

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

然后在选择委托保存。

然后在自己配置测试OBS。

查看日志

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

 

点击关注,第一时间了解华为云新鲜技术~文章来源地址https://www.toymoban.com/news/detail-413164.html

到了这里,关于使用CodeArts发布OBS,函数工作流刷新CDN缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 若依低代码平台(带工作流引擎版本)使用记录

    目录 0 平台介绍 1 创建数据库 2 Redis缓存数据库 3 修改配置文件 4 修改maven依赖 5 运行后台 6 运行前端 7 运行效果 带工作流引擎的开源低代码平台并不常有,这是基于若依开发的工作流版本低代码平台,MIT开源协议,前后端分离,前端使用Vue框架,后端SpringBoot。 本文引用的

    2024年02月12日
    浏览(39)
  • 【GitOps系列】使用 ArgoCD 快速打造GitOps工作流

    ArgoCD简介 官网:https://argo-cd.readthedocs.io/en/stable/ ArgoCD安装 访问ArgoCD GitOps 工作流总览 我们可以把这个完整的 GitOps 工作流分成三个部分来看。 第一部分:开发者推送代码到 GitHub 仓库,然后触发 GitHub Action 自动构建。 第二部分:GitHub Action 自动构建,它包括下面三个步骤:

    2024年02月14日
    浏览(44)
  • 中文GPTS使用秘籍,字节扣子Coze工作流使用全教程

    大家好,我是斜杠君。今天和大家分享字节扣子Coze工作流创建和使用全教程,手把手教会你。   首先我们先来看一下如何创建一个工作流。   我们以创建这样一个工作流为例。 这个工作流程的作用是:把用户输入的内容通过头条接口查询信息,把查到的信息标题翻译成英文

    2024年04月08日
    浏览(41)
  • 使用 Github Actions 工作流自动部署 Github Pages

    actions顾名思义就是一堆动作,是一个持续集成服务,持续集成包含了拉代码、运行测试、编译代码、登录远程服务器,发布到第三方服务等等的操作,GitHub将这些操作称为actions。 概念:Workflows, Events, Jobs, Actions, Runners Workflows 工作流 一个 Workflow 由多个 Jobs 组成 Events 定义哪

    2024年02月07日
    浏览(73)
  • 中东 Shopify 如何使用 Bytebase 构建一站式数据库开发工作流

    Salla 是一家 2016 年成立,位于沙特麦加的自建站电商平台。 作为中东 Shopify,其最大的特点是支持阿拉伯语建站,并且提供更多适应中东地区特点的本地化服务。截止目前,已有 47,000 家店铺入驻 Salla,商品销售总额达到了 43 亿美元,近三年保持了接近 100% 的增速。 与 Sall

    2024年02月09日
    浏览(49)
  • github使用workflow工作流git push后自动打包部署github pages

    根目录新建.github/workflows/docs.yml .github/workflows/ 目录是用于存放 GitHub Actions 工作流程文件的目录,该目录的文件名必须以 .yml 或 .yaml 为后缀名,否则 GitHub 将无法识别该文件为工作流程文件。这些工作流程文件可用于自动化执行项目中的各种任务,例如构建、测试、部署等。

    2024年02月10日
    浏览(53)
  • 工作流Flowable入门教程:flowableUI的安装使用,RepositoryService、RuntimeService、TaskService、HistoryService的使用

    Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。这个章节将用一个可以在你自己的开发环境中使用的例

    2024年01月18日
    浏览(59)
  • 陶哲轩工作流之人工智能数学验证+定理发明工具LEAN4 [线性代数篇2前置知识]不同求和范围不同函数项结果相等的条件

    有空点赞我的视频哦:陶哲轩工作流之人工智能数学验证+定理发明工具LEAN4 [线性代数篇2前置知识]不同求和范围不同函数项结果相等的条件_哔哩哔哩_bilibili -- 反向推理 refine\\\' sum_bij _ _ _ _ _ -- {s : Finset α} {t : Finset γ} {f : α → β} {g : γ → β} -- (i : ∀ a ∈ s, γ) -- (hi : ∀ a ha,

    2024年01月17日
    浏览(53)
  • 【idea中Activiti BPMN visualizer插件和Camunda Modeler工作流设计器的简单使用】

    1、Idea中的工作流插件Activiti BPMN visualizer Activiti插件actiBPM在新版的idea 2020及以上版本中已经不支持,Activiti BPMN visualizer是一款支持编辑和游览工作流设计图的idea插件,但是它对工作流设计中的网关设计支持并不太友好;下面第4章节我们用到Camunda Modeler软件来协助设计整体工

    2023年04月09日
    浏览(43)
  • 【工作流】Activiti工作流简介以及Spring Boot 集成 Activiti7

    什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程。 文章源码托管:https://github.com/OUYANGSIHAI/Activiti-learninig Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包