获取cdn配置风暴英雄_GitHub Actions+腾讯云COS+SCF云函数刷新CDN自动化部署静态网站...

news/2024/5/13 4:29:23/文章来源:https://blog.csdn.net/weixin_33954023/article/details/113708605

9b290d29a8ab7e6a67213e30b9e0db1d.gif

3e233099bc3f6dcf04ea39199285ca35.png作者介绍Stille:互联网重度爱好者,喜欢追求一切基于互联网的前沿科技、技术、产品,目前从事互联网软硬件相关工作。

作为强迫症患者,一直对自动化部署非常痴迷,个人认为全自动部署最重要的就是稳定可靠,经过研究测试,最终使用GitHub和腾讯云两大平台,成功完成了全自动部署网站的实践。

1业务背景

笔者有一个简单的纯静态文档站点docs.ioiox.com,使用的是docsify项目的Markdown渲染程序,平时通过本地VSCode编辑文档,并提交到Github,早前是直接使用GitHub Pages绑定域名来访问,但由于网络问题,体验并不好。

2解决方案

腾讯云COS对象存储服务能够提供静态网站服务,并可以配置CDN域名进行访问,那么就需要解决以下两个问题:

  • 如何使GitHub自动同步文件到腾讯云COS;

  • 腾讯云COS对应的CDN又是如何自动刷新;

解决方案:

  • GitHub Action-配置每次Push代码后自动上传到COS;

  • 腾讯云SCF云函数-检测到COS内文件变动后自动刷新对应的CDN链接;

方案流程图:

da3a82dd82a2c5bddcd2ffb2d8318a63.png

3获取腾讯云API密钥

登录腾讯云控制面板,访问管理中的访问密钥→API密钥管理→新建密钥,此密钥拥有所有权限,为保证安全,也可以添加子用户,配置COS、CDN对应的权限,如下图示

ffec9865e2fc01a3f5f688e6c4c943da.png

4配置腾讯云COS

登录腾讯云对象存储控制面板,在存储桶列表中创建存储桶,选择适合的地域,设置权限为公有读私有写并获取存储桶相关信息,如下图示

d54066b45fecfe2d58ef23463b2be02a.png

278c9436ff295d6cf67425807d00c843.png

5配置GitHub Actions

在GitHub仓库中,Settings→Secrets,添加SecretId和SecretKey分别为刚才获取的腾讯云API密钥,如下图示

c0ea39d0660af3efd272fb2afdd1809a.png

GitHub仓库→Actions,默认会有很多推荐的workflows,这里选择Set up a workflow yourself自己来配置。

ee3ca16a73797f0f6c8041d5d81da2cb.png

系统会创建一个workflow的yml配置文件,删除预设代码,复制以下样本代码。图上标红两处需修改为刚才创建存储桶获取的名称和区域,然后右上角提交即可。

503e95c1cf99629196a317afc4662c52.png

yml配置文件

name: Upload to COSon: [push]jobs:  build:    runs-on: ubuntu-latest    steps:    - uses: actions/checkout@v1    - name: Install coscmdrun: sudo pip install coscmd    - name: Configure coscmdenv:        SECRET_ID: ${{ secrets.SecretId }}SECRET_KEY: ${{ secrets.SecretKey }}BUCKET: docs-1300533487REGION: ap-shanghairun: coscmd config -a $SECRET_ID -s $SECRET_KEY -b $BUCKET -r $REGION    - name: Uploadrun: coscmd upload -rs --delete -f ./ / --ignore "./.git/*"
6测试GitHub Actions

提交yml后系统检测到main.yml的push,便会开始运行这个workflow,根据yml配置文件,可以看出整个工作流简单理解为安装了腾讯云的coscmd工具,并根据配置的SecretId SecretKey BUCKET REGION上传整个仓库到腾讯云COS,同时忽略掉git文件夹,其中upload-rs命令会使用md5比对存储桶中已存在的文件,相同文件将会跳过上传。

8f7999c14ac71f04df37fd135d864b9a.png

b09e81ea0d7e1ddc2a44ed3da23b5b89.png

7配置CDN域名

配置腾讯云CDN域名,登录腾讯云对象存储控制面板,进入创建的存储桶,在基础配置中开启静态网站。

ed36c47fa72593553bb674a1d1b95c5e.png

域名管理,添加自定义加速域名,并设置域名指向生成的CNAME地址,源站类型改为静态网站源站。

703cb31e292e178015f75693f1646dc4.png

在控制面板内容分发网络域名管理下,点击添加的域名选择高级配置。

开启HTTPS,设置强制跳转HTTPS,并更改跳转方式为301,再点击前往配置申请免费证书。

279b3047451df0d10842abe39f01b46c.png

8配置SCF云函数

登录腾讯云云函数控制面板,首次使用云函数可能会跳出服务授权框,需要前往访问添加并同意授权即可,该角色对本次添加的云函数没有影响。

40f4904afa8d028f144a8290440a5031.png

选择和存储桶相同区域并新建,填写函数名,运行环境选择Php5.6,创建方式选择空白函数下一步。

3575bf1387743ea0f00ab3229069820a.png

函数配置,上部分保持默认即可,删除默认代码,复制以下样本代码至此。

图上标红两处需修改为之前获取的API密钥,注意此处的ID和KEY顺序和之前配置GitHub Actions时是相反的,并把CDN链接改为你的域名,如果域名已配置过HTTPS和证书,确保此处为https,完成即可。

a04b1e032fbd4cf192e10641b70c92fa.png

函数代码样本,可以联系小编索取。

测试函数代码,确认API及CDN配置正确,点击测试,返回成功。

62fc76e714f7ccc21c5c18f42c162af9.png

添加触发方式,此处需要分别添加全部创建和全部删除两个触发方式。

触发方式 : COS触发;

COS Bucket : 选择你的存储桶 (请再次确保存储桶和云函数的区域相同);

事件类型 : 全部创建和全部删除;

ca3d146dca609f1f14a1473f49644aa4.png

9测试SCF云函数

腾讯云内容分发网络控制台,左侧刷新预热→操作记录→查询。

可以看到刚才测试成功的一条记录,现在可以尝试在Push代码到GitHub来完整的测试整个流程了。

71880a527a57e59a35760fb2ddccc8bc.png

原创声明,本文系作者授权发表,未经许可,不得转载。

如有侵权,请联系小编删除,谢谢。

1419bdcbb7853c25fab661ce540ca53d.gif 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_728571.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java家电网站_基于jsp的家电销售网-JavaEE实现家电销售网 - java项目源码

基于jspservletpojomysql实现一个javaee/javaweb的家电销售网, 该项目可用各类java课程设计大作业中, 家电销售网的系统架构分为前后台两部分, 最终实现在线上进行家电销售网各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类家电销售网相关的实体进行管理…

一步步学习SPD2010--第二章节--处理SP网站(4)--删除SP网站

如果你不再需要一个网站,你可以删除它。注意,当你删除网站时,并没有送到回收站。正如在本章节之前看到的,你可以使用SPD创建网站。网站标题反映了用来创建网站的模板名称。例如,你可能会创建很多名为团队网站的网站&am…

得分(Score,ACM/ICPC Seoul 2005,UVa1585)

给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1200100123. 输入样例 5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOOOOOOO OOOOXOOOOXOOOO…

seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_如何挖掘关键词?分享5招,小白也能做好SEO网站优化!...

SEO优化、提升排名、网站优化这些都是SEO网站推广人员老生常谈的话题。关于网站SEO优化的咨询,很多人会遇到以下几种情况:网站优化很吃力;网站排名总是上不去;网站排名不稳定该怎么解决;不知道如何挑选合适的网站关键词…

Java的SSH网站

1、框架 strusts2 Hibernate spring 2、图片 图1-1 网站结构 图1-2 java代码结构 3、源代码 3.1 UserAction.java package com.xhu.action;import java.util.HashMap; import java.util.Map;import javax.annotation.Resource;import net.sf.json.JSONObject; import net.sf.…

30个宏伟的酒厂和葡萄园网站设计

在过去的几年中,越来越多的企业推出自己的网站。以下网站是挑选的世界各地的葡萄园网站,有些还是著名的旅游景点,而另一些则只是家族企业与伟大的产品的历史。之前给大家分享个很多行业的企业网站,这篇文章收集了30个宏伟的酒厂和…

网站iis php发布网站吗,PHP网站在IIS中发布的相关配置

前言前段时间整了一个挂Q的平台。源代码是从网上下载的,后期稍微调整了一下链接和title之类的文字就上线了。详细在这里。运行了一段时间,除了偶尔出现QQ下线上线,整体效果基本上符合预期,个人感觉很满意,也小有成就感…

php网站后台登录背景,wordpress后台登录页面logo/链接/背景修改(自定义)

wordpress后台登录页面logo链接默认是链接到https://cn.wordpress.org/,logo图标是一个W图,没有背景图。为了个性化,很多wordpress网站后台都进行了自定义WordPress的登录页面。这个可以在主题的functions.php 添加一些简单的代码来实现自定义…

【PC网站前端架构探讨系列】关于中小型PC网站前端架构方案的讨论与实践

目 录 1.遇到的问题 2.目标 3.探讨 4.架构设想 5.流程 6.初步实现 7.存在问题 8.最后 遇到的问题 我在这个系列上篇文章 已经讲解并开始逐步应用模块化思想,不知大家还记不记得,题目:【PC网站前端架构探讨系列】结合公司网站首页&#xff0…

网站访问慢跟80端口_怎样用黑群创建自己的个人网站

我们搭建网站通常是在云服务器或云虚拟空间,亦或是自己的笔记本电脑。前者需要另外按月购买,后者需要24H联网开机。而已经在手上的(黑群)安装Web Station后,不仅不需要额外购买,还不用自己从零搭建网站。那么我们现在开始吧&#…

网站能ping通 网页打不开_怎么回事?我的电脑浏览器打不开网页,但微信、QQ却又能用?...

怎么回事?我的电脑浏览器打不开网页,但微信、QQ却又能用?打开电脑,登上微信、QQ,打开网页,这已经是每天的日常工作了。怎么回事,我的网页怎么打不开了?换个浏览器,好奇怪…

js通过月份判断前三个月_【扫黑专题】分析BC跳转JS骚操作、解决网站反复被黑【实战操作】...

【扫黑专题】分析BC跳转JS骚操作、解决网站反复被黑【实战操作】 前几天写了一篇文章、关于分析BC做法的文章(如果有没看的兄弟、请去公众号:逆冬黑帽SEO,公众号里有更多精彩文章)、下面我们再来看看BC跳转手法(主要以JS为主)、以及大家讲讲如何防黑的干…

安全狗linux更新日志,网站安全狗_ 网站安全狗(Linux版)_下载之家

网站安全狗(Linux版)是一款服务器安全防护软件,网站安全狗集网站内容安全防护,网站资源保护及网站流量保护功能为一体的服务器工具。网站安全狗功能涵盖了网马/木马扫描,防SQL注入,防盗链,防CC攻击,网站流量实时监控,网站CPU监控,下载线程保护,IP黑白名单管理,网页防篡改功能(结…

背景视频html5网页,视频作为网站背景? HTML 5

我可能有一个解决方案,可以将视频作为背景,并扩展到浏览器的宽度或高度(但视频仍将保留长宽比,尚无法找到解决方案。):将视频放在带有bodydummy的正文标签之后。之后,放置一个“婴儿假人”标签:将所有内容放…

外贸电子商务网站之Prestashop 设置网站基本信息

顶部banner图,首页各尺寸banner图、社交分享、物流支持、支付方式提醒等等设置 示例版本:1.6.1.11 转载于:https://www.cnblogs.com/MY0101/p/6424770.html

使用Django开发集成Pytorch\Tensorflow的人工智能网站

AI_WEB 链接:resnet分类模型 提取码:nh4r 查看nginx错误日志cat /var/log/nginx/error.log1.基础环境和软件库需求2.Xshell远程连接服务器3.安装Linux版本的Anaconda4.安装并测试Django5.Git使用6.服务器拉取仓库代码7.规范django开发文件8.配置settin…

Hdlbit网站练习:Exams/ece241 2013 q4:水位问题

此题需要注意的地方有三个&#xff1a; 1&#xff09;水位监测器的输入是状态跳转的条件 2&#xff09;assign {fr3,fr2,fr1} {!s[1],!s[2],!s[3]};//不能根据输入判断否则会提前一会时钟 3&#xff09;assign dfr (state < next_state) ? 1’b0 : 1’b1; //使用组合逻辑…

从hdlbit网站学习到有关独热码编码方式的认识

题目如下所示&#xff1a; 首先介绍独热码&#xff1a; 其特征就是&#xff1a;只有一个位为1其余全为0 的编码方式 优点&#xff1a;因为每一个状态只有一位为1&#xff0c;减少了毛刺的产生&#xff08;时序电路增加&#xff0c;组合电路减少 &#xff09; 缺点&#xff1a;…

php 通用密码,(php脚本自研分享)•通用型保存网站用户密码到css文件

很多时候呢&#xff0c;我们拿到一个shell以后&#xff0c;偶尔会遇到密码解不了的情况&#xff0c;用xss收集cookie吧&#xff0c;感觉不方便&#xff1b;利用xss平台劫持表单吧&#xff0c;感觉麻烦&#xff0c;也会担心自己想要的密码别人也copy了一份等等情况吧&#xff0c…