摘要:上次通過OBS和CDN部署來Hexo網(wǎng)站,但是每次我們不可能都自己編譯然后在上傳到OBS,不然太麻煩了,所以我們需要構(gòu)建流水線,通過PUSH Markdown來發(fā)布文章。
本文分享自華為云社區(qū)《使用軟件開發(fā)生產(chǎn)線CodeArts發(fā)布OBS,函數(shù)工作流刷新CDN緩存》,作者:熊大不大 。
上次通過OBS和CDN部署來Hexo網(wǎng)站,但是每次我們不可能都自己編譯然后在上傳到OBS,不然太麻煩了,所以我們需要構(gòu)建流水線,通過PUSH Markdown來發(fā)布文章,這樣方便又簡(jiǎn)單,我們大概流程如此。
好來廢話不多說開干。
第一步gitee上面擁有一份Hexo代碼
這個(gè)不用多說,申請(qǐng)代碼倉庫,提交自己博客代碼。
第二步華為云申請(qǐng)CodeArts
這個(gè)是免費(fèi)的,新建一個(gè)免費(fèi)空間最多5人使用,自己使用即可地址?CodeArts地址,先點(diǎn)擊新建項(xiàng)目,選擇DevOps全流程示例項(xiàng)目,輸入項(xiàng)目名稱點(diǎn)擊OK,返回頁面在點(diǎn)擊進(jìn)去項(xiàng)目,能看到有很多項(xiàng)目流程菜單。
第三步新建流水線
新建流水線之前我們先新建編譯構(gòu)建
1.新建任務(wù),名字取blog
2.選擇源碼源為碼云,第一次需要授權(quán),Endpoint實(shí)例新建,根據(jù)提示授權(quán)即可
3.選擇代碼倉庫,在選擇分支下一步選擇NPM構(gòu)建然后修改腳本
export PATH=$PATH:~/.npm-global/bin #設(shè)置緩存目錄 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 #默認(rèn)構(gòu)建 以上都是系統(tǒng)默認(rèn)的 才是自己修改 tar.gz就當(dāng)做備份 npm run build tar -zcvf blog.tar.gz public #這個(gè)生成zip包給OBS cd public zip -r blog.zip *
4.需要新增文件上傳到OBS上去,主要配置如下:產(chǎn)物路徑配置,桶名配置。
然后保存執(zhí)行,看是否有zip產(chǎn)物到OBS桶下面
5.新建流水線配置源,然后新增任務(wù),然后把剛才的編譯構(gòu)建的任務(wù)添加接口,部署不需要,因?yàn)檫@里是編譯完畢直接上傳obs桶的
第四步開啟數(shù)據(jù)處理,把zip文件自動(dòng)解壓到桶目錄下
如圖下:
新建規(guī)則,事件選擇ObjectCreate,前綴是包名全程不含后綴,后綴默認(rèn)zip,解壓路徑默認(rèn),IAM委托根據(jù)鏈接新建一個(gè)只容許操作OBS的全新。
清除CDN緩存, 使用函數(shù)工作流來
1.華為云新增一個(gè)函數(shù)工作流,函數(shù)類型是事件函數(shù)、區(qū)域我選廣州、函數(shù)名自己取blogDeploy,運(yùn)行時(shí)我選來14.18,現(xiàn)在有最新版本16了。
2.編寫代碼
第一個(gè)文件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; }
第二個(gè)文件 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.設(shè)置環(huán)境變量和觸發(fā)器,環(huán)境變量設(shè)置為urls,值為https://www.webfan.cn/;https://webfan.cn/
你需要刷新你的域名
觸發(fā)器設(shè)置為OBS觸發(fā),桶名:放博客的桶,事件是ObjectCreated,名字自取,前綴index,后綴html,我們只識(shí)別index.html即可。
4.設(shè)置權(quán)限托管,我們OBS需要獲取token來請(qǐng)求CDN服務(wù),所以需要委托代理授權(quán)。
點(diǎn)擊權(quán)限—?jiǎng)?chuàng)建委托,委托名字自己取,委托類型選云服務(wù),云服務(wù)選擇搜索函數(shù)工作流,持續(xù)時(shí)間永久。
然后下一步選擇授權(quán)項(xiàng)目CDN RefreshAndPreheatAccess,點(diǎn)擊完成,可以查看到自己權(quán)限可以使用 CDN RefreshAndPreheatAccess。
然后在選擇委托保存。
然后在自己配置測(cè)試OBS。
查看日志
好來一個(gè)完整的發(fā)布流程完整來,在本地我們寫來一份MD,然后通過PUSH之后,過幾分鐘則可以看到自己寫的內(nèi)容已經(jīng)自動(dòng)部署到OBS了,然后網(wǎng)站自動(dòng)刷新緩存,非常方便。
?文章來源:http://www.zghlxwxcb.cn/news/detail-413164.html
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~文章來源地址http://www.zghlxwxcb.cn/news/detail-413164.html
到了這里,關(guān)于使用CodeArts發(fā)布OBS,函數(shù)工作流刷新CDN緩存的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!