腾讯云 COS 组件,可以快速部署静态网站页面到对象存储 COS 中,并生成域名供访问。

安装

首先要安装 serverless 组件

  1. npm install -g serverless

在项目的根目录下生成配置文件

  1. touch serverless.yml

<a name="YpT8f"></a>

配置

在 serverless.yml 文件中进行如下配置

  1. # serverless.yml
  2. myWebsite:
  3. component: '@serverless/tencent-website'
  4. inputs:
  5. code:
  6. src: build
  7. hook: npm run build
  8. index: index.html
  9. error: index.html
  10. region: ap-guangzhou
  11. bucketName: my-bucket

部署

如您的账号未登陆或注册腾讯云,您可以直接通过 微信 扫描命令行中的二维码进行授权登陆和注册。

通过 sls 命令进行部署,并可以添加 --debug 参数查看部署过程中的信息(对于Windows用户来说, sls 命令可能无法使用,在使用时需要使用完整的 serverless 命令)

  1. $ sls --debug
  2. DEBUG Resolving the template's static variables.
  3. DEBUG ─ Collecting components from the template.
  4. DEBUG ─ Downloading any NPM components found in the template.
  5. DEBUG ─ Analyzing the template's components dependencies.
  6. DEBUG Creating the template's components graph.
  7. DEBUG ─ Syncing template state.
  8. DEBUG ─ Executing the template's components graph.
  9. DEBUG Starting Website Component.
  10. DEBUG Preparing website Tencent COS bucket my-bucket-1300415943.
  11. DEBUG Deploying "my-bucket-1300415943" bucket in the "ap-guangzhou" region.
  12. DEBUG "my-bucket-1300415943" bucket was successfully deployed to the "ap-guangzhou" region.
  13. DEBUG Setting ACL for "my-bucket-1300415943" bucket in the "ap-guangzhou" region.
  14. DEBUG Ensuring no CORS are set for "my-bucket-1300415943" bucket in the "ap-guangzhou" region.
  15. DEBUG Ensuring no Tags are set for "my-bucket-1300415943" bucket in the "ap-guangzhou" region.
  16. DEBUG Configuring bucket my-bucket-1300415943 for website hosting.
  17. DEBUG Uploading website files from /Users/dfounderliu/Desktop/temp/code/src to bucket my-bucket-1300415943.
  18. DEBUG Starting upload to bucket my-bucket-1300415943 in region ap-guangzhou
  19. DEBUG Uploading directory /Users/dfounderliu/Desktop/temp/code/src to bucket my-bucket-1300415943
  20. DEBUG Website deployed successfully to URL: https://my-bucket-1300415943.cos-website.ap-guangzhou.myqcloud.com.
  21. myWebsite:
  22. url: https://my-bucket-1300415943.cos-website.ap-guangzhou.myqcloud.com
  23. env:
  24. 2s myWebsite done

移除

通过以下命令移除项目

  1. $ sls remove --debug
  2. DEBUG Flushing template state and removing all components.
  3. DEBUG Starting Website Removal.
  4. DEBUG Removing Website bucket.
  5. DEBUG Removing files from the "my-bucket-1300415943" bucket.
  6. DEBUG Removing "my-bucket-1300415943" bucket from the "ap-guangzhou" region.
  7. DEBUG "my-bucket-1300415943" bucket was successfully removed from the "ap-guangzhou" region.
  8. DEBUG Finished Website Removal.
  9. 3s myWebsite done

账号配置(可选)

当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/秘钥信息,也可以本地创建 .env 文件

  1. $ touch .env # 腾讯云的配置信息

在 .env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存<br />

如果没有腾讯云账号,可以在此注册新账号。

如果已有腾讯云账号,可以在API 密钥管理中获取 SecretId 和SecretKey.

  1. # .env
  2. TENCENT_SECRET_ID=123
  3. TENCENT_SECRET_KEY=123

配置文件详解

一个完整的配置文件如下所示

  1. myWebsite:
  2. component: '@serverless/tencent-website'
  3. inputs:
  4. code:
  5. root: ./
  6. src: ./src
  7. hook: npm run build
  8. index: index.html
  9. error: index.html
  10. region: ap-guangzhou
  11. bucketName: my-bucket
  12. protocol: http
  13. hosts:
  14. - host: abc.cn
  15. - host: abc.com
  16. fullUrl: on
  17. cache:
  18. - type: 0
  19. rule: all
  20. time: 1000
  21. - type: 0
  22. rule: all
  23. time: 1000
  24. cacheMode: simple
  25. refer:
  26. - type: 1
  27. list:
  28. - 'qq.baidu.com'
  29. - '*.baidu.com'
  30. accessIp:
  31. type: 1
  32. list:
  33. - '1.2.3.4'
  34. - '2.3.4.5'
  35. https:
  36. certId: 123
  37. cert: 123
  38. privateKey: 123
  39. http2: off
  40. httpsType: 2
  41. forceSwitch: -2
  42. env:
  43. API_URL: https://api.com
  44. cors:
  45. - allowedOrigins:
  46. - '*.tencent.com'
  47. - '*.qcloud.com'
  48. allowedMethods:
  49. - PUT
  50. - POST
  51. - DELETE
  52. - HEAD
  53. allowedHeaders: '*'
  54. maxAgeSeconds: 0
  55. - allowedOrigins:
  56. - '*'
  57. allowedMethods:
  58. - GET
  59. allowedHeaders: '*'
  60. maxAgeSeconds: 0

主要参数说明

参数 必须/可选 默认 描述
code 必须   网站代码信息
region 可选 ap-guangzhou 存储桶所属地域,默认为广州
bucketName 必须   存储桶名称,如果您不添加AppId后缀,则会自动为您添加,后缀不能大写
protocol 可选 https 协议:https 或者 http
env Optional   Environment variables to include in a 'env.js' file with your uploaded code.
cors Optional   Cross-Origin Resource Sharing
hosts Optional   Add domain

代码参数说明

参数 必须/可选 默认 描述
root 可选   您的网站项目的根文件夹。 默认为当前工作目录
src 必须   包含您构建的工件的要上传的文件夹
hook 可选   在上传之前对代码进行构建/测试/执行任何操作的钩子
index 可选 index.html 索引页
error 可选 error.html 错误页面_(对于使用前端框架构建的应用程序来说,需要将此参数设置为索引页,否则在页面刷新或重定向是会出现问题)_

来源:安徽网站优化

基于serverless快速部署前端项目到腾讯云的更多相关文章

  1. 部署Flask项目到腾讯云服务器CentOS7

    部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...

  2. 基于云原生DevOps服务自动化部署前端项目学习总结

    本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...

  3. 使用vue2.x+webpack+vuex+sass+axios+elementUI等快速搭建前端项目框架

    一.本文将分享如何快速搭起基于webpack+vue的前端项目框架,利用vue的自己的脚手架工具vue-cli搭建起基本的环境配置,再通过npm包管理工具引入相应的依赖来完善项目的各种依赖框架.下面是 ...

  4. 记基于docker+gunicorn部署sanic项目遇到的很多很多坑

    前言: 最近有个项目需要上线,是python中sanic网络异步框架写的,并且要求使用docker+nginx来部署项目实现负载均衡,于是乎百度了sanic项目部署,基本上都是基于docker+gun ...

  5. docker自动化部署前端项目实战一

    docker自动化部署前端项目实战一 本文适用于个人项目,如博客.静态文档,不涉及后台数据交互,以部署文档为例. 思路 利用服务器node脚本,监听github仓库webhook push事件触发po ...

  6. 在基于ABP框架的前端项目Vue&Element项目中采用电子签名的处理

    在前面随笔介绍了<在基于ABP框架的前端项目Vue&Element项目中采用电子签章处理文件和打印处理>的处理,有的时候,我们在流程中或者一些文件签署的时候,需要签上自己的大名,一 ...

  7. Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的项目到腾讯云服务器

    写在前面 因为前面有写过一篇关于豆瓣的top250的电影的可视化展示项目,你可以移步http://blog.csdn.net/liuge36/article/details/78607955了解这个项 ...

  8. 在基于ABP框架的前端项目Vue&Element项目中采用电子签章处理文件和打印处理

    在一些内部OA或者流转的文件,或者给一些客户的报价文件.合同,或者一些医院出示的给保险机构的病历资料等,有时候可能都希望快速的使用电子签章的处理方式来给文件盖上特定的印章,本篇随笔介绍基于Vue&am ...

  9. 简单的利用nginx部署前端项目

    网上有很多教程写的一大堆东西,新手可能会有点看不懂,现在我写这篇文章是为了更好的帮助新手,如何将自己的前端项目部署到自己的服务器上. 首先我们必须要有一台自己的ubuntu服务器,如果没有可以去阿里云 ...

随机推荐

  1. ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建

    ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建 集群规划: hostname NameNode DataNode JournalNode Re ...

  2. SpringMVC中 controller方法返回值

    1)ModelAndView @RequestMapping(value="/itemEdit") public ModelAndView itemEdit(){ //创建模型视图 ...

  3. SpringMVC: JSON

    SpringMVC:JSON讲解 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编 ...

  4. tableau创建蜘蛛图

    tableau官方案例2:创建起点和终点的路径地图 (spider Maps) 源数据样式: 应用:交通图  步骤及注意: 将Line Group (Path ID)维度放入标记卡详细信息 默认的为聚 ...

  5. 大二暑假第四周总结--开始学习Hadoop基础(三)

    简单学习云数据库系统架构(以UMP系统为例) 一.UMP系统概述 低成本和高性能的MySQL云数据库方案 二.UMP系统架构 架构设计遵循以下原则: 保持单一的系统对外入口,并且为系统内部维护单一的资 ...

  6. 登录之后跳转到登录之前的页面 之 Referer 的坑

    简而言之:通过鼠标在页面上点击链接发送请求,请求header中会包含referer信息, 通过在浏览器地址栏书写并发送请求的,header中不会有referer信息. 为了完成登录动作成功后返回原页面 ...

  7. 学术Essay写作关键:避免冗余

    “冗余”(Redundant)意味着多余的.不必要的.在Essay写作中,redundant expression(即冗余表达)指的是在一个短语或一句句子中有一个单词完全重复了同一短语或句子中的另一个 ...

  8. i春秋-web-upload(文件内容读取)(“百度杯”九月场)

    提示很明显,flag在flag.php中,所以,任务就是获取flag.php的内容. 方法一:一句话+菜刀(不再叙述) 方法二:上传脚本,使脚本拥有一定权限,再输出flag 先造一个php脚本 < ...

  9. 前端框架vue学习笔记

    占坑

  10. google docker镜像下载

    https://anjia0532.github.io/2017/11/15/gcr-io-image-mirror/