操作场景
腾讯云 CDN 组件是 serverless-tencent 组件库中的基础组件之一。通过 CDN 组件,您可以快速方便的创建、配置和管理腾讯云的 CDN 产品。
前提条件
已安装 Node.js(Node.js 版本需不低于 8.6,建议使用 Node.js10.0 及以上版本)。
需要开通 内容分发网络 服务。
操作步骤
安装
配置
1. 新建一个
cdnDemo
文件夹。mkdir cdnDemo
2. 在
cdnDemo
中创建 serverless.yml
文件;cd cdnDemotouch serverless.yml
cd cdnDemotouch serverless.yml
cd cdnDemoecho. > serverless.yml
3. 在
serverless.yml
中进行如下配置:# serverless.ymlcomponent: cdnname: cdnDemoapp: appDemostage: devinputs:area: overseasdomain: mysite.com #域名origin:origins:- xxx.cos.ap-guangzhou.myqcloud.com #源站,可以是域名或 IPoriginType: cosoriginPullProtocol: httpsserviceType: webforceRedirect:switch: onredirectType: httpsredirectStatusCode: 301https:switch: onhttp2: oncertInfo:certId: 'abc'# certificate: 'xxx'# privateKey: 'xxx'
部署
执行以下命令进行扫码授权部署:
scf deploy
说明:
移除
执行以下命令移除部署的服务:
仅删除云函数相关的配置、代码。
关联的其他云资源(如 COS、CLS 等),平台均不会关联删除,您可以前往对应产品控制台删除,避免不必要的计费。
scf remove
账号配置(可选)
当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/密钥信息,也可以本地创建
.env
文件:touch .env # 腾讯云的配置信息
在
.env
文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存:# .envTENCENT_SECRET_ID=123TENCENT_SECRET_KEY=123
配置详情
全部配置
# serverless.ymlcomponent: cdnname: cdnDemoorg: orgDemoapp: appDemostage: devinputs:domain: abc.comarea: overseasasync: trueonlyRefresh: falseserviceType: weborigin:origins:- origin.site.comoriginType: cosoriginPullProtocol: httpshttps:switch: onhttp2: oncertInfo:certId: 'abc'refreshCdn:urls:- https://abc.compushCdn:urls:- https://abc.comcache:simpleCache:followOrigin: oncacheRules:- cacheType: allcacheContents:- '*'cacheTime: 1000cacheKey:fullUrlCache: onreferer:switch: onrefererRules:- ruleType: allrulePaths:- '*'refererType: blacklistallowEmpty: truereferers:- 'qq.baidu.com'- '*.baidu.com'ipFilter:switch: onfilterType: blacklistfilters:- '1.2.3.4'- '2.3.4.5'forceRedirect:switch: onredirectType: httpsredirectStatusCode: 301
配置说明
CDN 配置
参数名称 | 是否必选 | 默认值 | 描述 |
domain | 是 | - | CDN 域名。 |
origin | 是 | - | |
area | 否 | mainland | 域名加速区域: mainland:中国境内加速 overseas:中国境外加速 global:全球加速 (使用中国境外加速、全球加速时,需要先开通中国境外加速服务) |
serviceType | 否 | web | 加速域名业务类型。 web:静态加速 download:下载加速 media:流媒体点播加速 |
async | 否 | false | 是否为异步操作,如果为 true,则不会等待 CDN 创建或更新成功再返回。 |
onlyRefresh | 否 | false | 是否只刷新预热 CDN,如果为 true ,那么只进行刷新操作,不会更新 CDN 配置。 |
refreshCdn | 否 | - | |
pushCdn | 否 | - | |
https | 否 | - | |
cacheKey | 否 | - | |
cache | 否 | - | |
referer | 否 | - | |
ipFilter | 否 | - |
注意:
async
参数对于配置多个 CDN 域名需求,或者在 CI 流程中时,建议配置成 true
,不然会导致 serverless cli 执行超时,或者 CI 流程超时。origin
参数名称 | 是否必选 | 默认 | 描述 |
origins | 是 | - | 主源站列表 |
originType | 是 | domain | 主源站类型。 domain:域名类型 cos:对象存储源站 |
originPullProtocol | 是 | http | 回源协议配置。 http:强制 http 回源 follow:协议跟随回源 https:强制 https 回源,https 回源时仅支持源站443端口 |
serverName | 否 | - | 回主源站时 Host 头部,不填充则默认为加速域名。若接入的是泛域名,则回源 Host 默认为访问时的子域名。 |
cosPrivateAccess | 否 | - | originType 为对象存储(COS)时,可以指定是否允许访问私有 bucket。注意:需要先授权 CDN 访问该私有 Bucket 的权限后,才可开启此配置。 |
backupOrigins | 否 | - | 备源站列表。 |
backupOriginType | 否 | domain | 备源站类型。 domain:域名类型 cos:对象存储源站 |
backupServerName | 否 | - | 回备源站时 Host 头部,不填充则默认为加速域名。若接入的是泛域名,则回源 Host 默认为访问时的子域名。 |
refreshCdn
参数名称 | 是否必选 | 默认 | 描述 |
urls | 否 | [] | 需要刷新的 CDN 目录 |
pushCdn
参数名称 | 是否必选 | 默认 | 描述 |
urls | 否 | [] | 需要预热的 CDN URLs |