腾讯云 Serverless 应用中心 - 云函数 SCF 组件
文档简介:
组件概述:
腾讯云 SCF 云函数组件通过使用 Tencent Serverless Cloud Framework,基于云上 Serverless 服务(云函数及触发器等),实现“0”配置,便捷开发,极速部署您的第一个云函数,该组件支持丰富的配置扩展,提供了目前最易用、低成本并且弹性伸缩的云函数的开发、配置及部署能力。
组件概述
腾讯云 SCF 云函数组件通过使用 Tencent Serverless Cloud Framework,基于云上 Serverless 服务(云函数及触发器等),实现“0”配置,便捷开发,极速部署您的第一个云函数,该组件支持丰富的配置扩展,提供了目前最易用、低成本并且弹性伸缩的云函数的开发、配置及部署能力。
快速入门
前提条件
已经安装 Serverless Cloud Framework 。详情见 安装 Serverless Cloud Framework。
账号开通 Serverless 相关权限。详情请参见 账号和权限配置。
操作步骤
创建
方式1:按照 快速部署 操作,选择 SCF 项目模板进行创建。
方式2:直接使用 scf init 命令创建。快速创建一个 nodejs 的 SCF 示例:
scf init scf-nodejs
说明
目前 SCF 组件支持的 helloworld 模板有:scf-golang、scf-php、scf-python,只需要将命令中的 scf-nodejs 更换为前面列出的模板名称,即可快速初始化相应语言模板。
部署
执行以下命令,将会弹出二维码,直接扫码授权进行部署:
scf deploy
说明
如果鉴权失败,请参考 权限配置 进行授权。
查看
执行以下命令,查看您部署的项目信息:
scf info
移除
执行以下命令,移除您已经部署的项目:
scf remove
进阶指导
serverless.yml
执行 scf deploy 时,根据 serverless.yml 文件中的配置对云函数资源进行创建或更新。一份简单的 serverlesss.yml 文件如下:
说明
配置详情请参见 全量配置文档。
#scf组件配置样例#组件信息component: scf # (必填) 引用 component 的名称,当前用到的是 tencent-scf 组件name: scfdemo # (必填) 创建的实例名称,请修改成您的实例名称#组件参数inputs:name: ${name}-${stage}-${app} #函数名称src: ./ #代码路径handler: index.main_handler #入口runtime: Nodejs10.15 # 云函数运行时的环境region: ap-guangzhou # 云函数所在区域events: # 触发器- apigw: # 网关触发器parameters:endpoints:- path: /method: GET
serverless.yml 文件包含的信息:
组件信息
组件名
|
是否必选
|
说明
|
component
|
必填
|
component 的名称,使用scf registry命令查询您可以引入的组件。
|
name
|
必填
|
创建的实例名称,每个组件在部署时将创建一个实例。
|
参数信息
inputs 下的参数为组件配置参数。一个简单的 SCF 组件参数配置包含以下内容:
参数名
|
说明
|
name
|
云函数名称。由于云函数名称又是资源 ID,为了保证资源的唯一性,建议采用 ${name}-${stage}-${app} 变量方式。
|
src
|
代码路径。
|
handler
|
函数处理方法名称。
|
runtime
|
云函数运行环境,目前支持: Python2.7、Python3.6、Nodejs6.10、Nodejs8.9、Nodejs10.15、Nodejs12.16、PHP5、PHP7、Go1、Java8 和 CustomRuntime。
|
region
|
云函数所在的区域。
|
events
|
触发器。支持的触发器为:timer、apigw、cos、cmq、ckafka。
|
账号权限
部署实例时需要账号授权去操作具体的云资源,目前可以通过两种方式进行授权:扫码授权和密钥授权。
扫码授权:能快速进行授权部署,但生成的凭证是临时凭证,过期后需要重新扫码。
密钥授权:能够获得永久授权,需要预先配置账号的 SecretId 和 SecretKey 。
配置详情请参见 权限配置。
开发调试
在 serverless.yml文件所在的目录下运行 scf dev 可以实时输出云端日志,每次部署完毕后,对项目进行访问,即可在命令行中实时输出调用日志,便于查看业务情况和排障。nodejs 支持开启开发调试能力,将会对本地代码的改动进行检测和自动上传。详情请参见 开发与调试。
应用管理
Serverless 部署一个组件实例实质是部署了一个单组件实例的应用。在应用项目开发过程中,一个应用下可能会存在多个组件实例,关于管理组件实例进行应用项目开发的说明,详情请参见 应用管理。
组件命令
云函数组件提供了组件级的命令。对于scf deploy命令部署成功的云函数,可以通过以下命令操作云函数。
说明
命令必须在 serverless.yml 同目录下执行。
函数发版本
将函数 my-function 云端的 $LATEST 版本发布为一个固定版本:
scf deploy --inputs publish=true function=my-function
函数新增版本
将函数 my-function 云端的 $LATEST 版本新增一个版本名为 Version1 的函数版本:
scf deploy --inputs publish=true qualifier=Version1 function=my-function
创建别名
给云函数 my-function 创建别名 routing-alias,路由规则为版本1流量为50%,版本2流量为50%:
scf create-alias --inputs name=routing-alias function=my-function version=1config='{"weights":{"2":0.5}}'
更新别名
更新云函数 my-function 别名 routing-alias 的流量规则为版本1流量为10%,版本2流量为90%:
scf update-alias --inputs name=routing-alias function=my-function version=1 config='{"weights":{"2":0.9}}'
列举别名
列举云函数 my-function 别名 routing-alias:
scf list-alias --inputs function=my-function
删除别名
删除云函数 my-function 的别名 routing-alias:
scf delete-alias --inputs name=routing-alias function=my-function
触发函数
云端调用 functionName 函数,并传递 json 参数{"weights":{"2":0.1}}:
scf invoke --inputs function=functionName clientContext='{"weights":{"2":0.1}}'
配置详情
全部配置
# serverless.yml#应用组织信息app: '' # 应用名称。留空则默认取当前组件的实例名称为app名称。stage: '' # 环境名称。默认值是 dev。建议使用${env.STAGE}变量定义环境名称#组件信息component: scf # (必选) 组件名称,在该实例中为scfname: scfdemo # (必选) 组件实例名称。#组件参数配置inputs:name: scfdemo # 云函数名称,默认为 ${name}-${stage}-${app}namespace: defaultrole: exRole # 云函数执行角色# 1. 默认写法,新建特定命名的 cos bucket 并上传src: ./src# 2. src 为对象,并且制定忽略上传文件夹 node_modules# src:# src: ./code# exclude:# - 'node_modules/**'# 3. 指定 bucket name 和文件的方式,直接上传 cos 中的文件部署云函数# src:# bucket: tinatest # bucket name 存储桶名称# object: 'code.zip' # bucket key 指定存储桶内的文件# 4. 指定本地文件到 bucket# src:# bucket: tinatest # bucket name# src: # 指定本地路径type: event # 函数类型,默认为 event(事件类型),web(web类型)handler: index.main_handler #入口(函数类型为事件类型时生效)entryFile: app.js #入口文件名(代码中无scf_bootstrap文件,且函数类型为web类型时生效)runtime: Nodejs10.15 # 运行环境 默认 Nodejs10.15region: ap-guangzhou # 函数所在区域description: This is a function in ${app} application.memorySize: 128 # 内存大小,单位MBtimeout: 20 # 函数执行超时时间,单位秒initTimeout: 3 # 初始化超时时间,单位秒environment: # 环境变量variables: # 环境变量对象TEST: valuepublicAccess: true # 是否开启公网访问installDependency: false # 是否在线安装依赖vpcConfig: # 私有网络配置vpcId: vpc-xxx # 私有网络的IdsubnetId: subnet-xxx # 子网IDcfs: # cfs配置- cfsId: cfs-123mountInsId: cfs-123localMountDir: /mnt/remoteMountDir: /deadLetter: # 死信队列配置type: deadLetterTypename: deadLetterNamefilterType: deadLetterFilterTypelayers: #layer配置- name: scfLayer # layer名称version: 1 # 版本cls: # 函数日志logsetId: ClsLogsetIdtopicId: ClsTopicIdeip: false # 是否开启固定IPasyncRunEnable: false # 是否启用异步执行(长时间运行)traceEnable: false # 是否状态追踪msgTTL: 21600 # 消息保留时间,单位秒retryNum: 2 # 重试次数tags: #标签配置key1: value1key2: value2 # tags 的key valueignoreTriggers: false # 是否忽略触发器部署image: # 镜像配置registryId: tcr-xxx # 容器镜像服务名称,企业版必须imageType: personal # 镜像类型:personal - 个人,enterprise - 企业版,public - 镜像模板imageUrl: ccr.ccs.tencentyun.com/sls-scf/nodejs_test:latest@sha256:xxxcommand: node index.js # 容器启动命令args: test # 容器启动参数events: # 触发器- timer: # 定时触发器parameters:# name: timer # 触发器名称,默认timer-${name}-${stage}qualifier: $DEFAULT # 别名配置cronExpression: '*/5 * * * * * *' # 每5秒触发一次enable: trueargument: argument # 额外的参数- apigw: # api网关触发器,已有apigw服务,配置触发器parameters:serviceName: serverlessserviceId: service-8dsikiq6protocols:- httpnetTypes:- OUTERdescription: the serverless serviceenvironment: releaseendpoints:- path: /usersmethod: POST- path: /test/{abc}/{cde}apiId: api-idapiName: indexmethod: GETdescription: Serverless REST APIenableCORS: trueresponseType: HTMLserviceTimeout: 10isBase64Encoded: falseisBase64Trigger: falsebase64EncodedTriggerRules:- name: Acceptvalue:- image/jpeg- name: Content_Typevalue:- image/jpegparam:- name: abcposition: PATHrequired: truetype: stringdefaultValue: abcdesc: mytest- name: cdeposition: PATHrequired: truetype: stringdefaultValue: abcdesc: mytestfunction:isIntegratedResponse: truefunctionQualifier: $DEFAULTusagePlan:usagePlanId: 1111usagePlanName: slscmpusagePlanDesc: sls createmaxRequestNum: 1000auth:secretName: secretsecretIds:- xxx- cos: # cos触发器parameters:qualifier: $DEFAULT # 别名配置bucket: cli-appid.cos.ap-beijing.myqcloud.comfilter:prefix: filterdir/suffix: .jpgevents: 'cos:ObjectCreated:*'enable: true- cmq: # CMQ Topic 触发器parameters:qualifier: $DEFAULT # 别名配置name: test-topic-queueenable: truefilterType: 1 # 消息过滤类型,1为标签类型,2为路由匹配类型filterKey: # 当 filterType 为1时表示消息过滤标签,当 filterType 为2时表示 Binding Key- key1- key2- ckafka: # ckafka触发器parameters:qualifier: $DEFAULT # 别名配置name: ckafka-xxxtopic: testmaxMsgNum: 999retry: 10000offset: latesttimeout: 60enable: true- cls: # cls 触发器parameters:qualifier: '$DEFAULT' # 别名配置topicId: 'xxx-228b-42f5-aab5-7f740cc2fb11' # 日志主题 IDmaxWait: 60 # 最长等待时间,单位秒enable: true- mps: # mps 触发器parameters:qualifier: '$DEFAULT' # 别名配置type: EditMediaTask # 事件类型enable: true
配置描述
主要的参数如下,详情请参见 创建函数。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
src
|
是
|
Src
|
-
|
函数代码路径。
|
type
|
否
|
string
|
event
|
函数类型,支持:event、web。
|
name
|
否
|
string
|
-
|
创建的函数名称。云函数名称,字段字符需满足只能包含字母、数字、下划线、连字符,以字母开头,以数字或字母结尾,2-60个字符。
|
namespace
|
否
|
string
|
default
|
函数命名空间。
|
handler
|
否
|
string
|
index.main_handler
|
函数处理方法名称,执行方法表明了调用云函数时需要从哪个文件中的哪个函数开始执行(函数类型为 web 时生效)。
|
entryFile
|
否
|
string
|
-
|
函数入口文件名,默认根据运行环境指定默认文件名。Nodejs 为 app.js,Python 环境为 app.py,php 环境为 hello.php(函数类型为 web 时生效)。
|
role
|
否
|
string
|
-
|
云函数绑定的运行角色。
|
runtime
|
否
|
string
|
Nodejs10.15
|
函数运行环境 (web 函数目前仅支持 Nodejs、Python、Php 三类环境)。目前仅支持 Nodejs6.10,Nodejs8.9,Nodejs10.15,Nodejs12.16,Nodejs14.18,Nodejs16.13,Python2.7,Python3.6,Python3.7,PHP5,PHP7,Go1,Java8,Java11 和 CustomRuntime。使用 CustomRuntime 部署详情请参见 CustomRuntime。
|
region
|
否
|
string
|
ap-guangzhou
|
云函数所在区域。详情请参见产品支持的 地域列表。
|
description
|
否
|
string
|
-
|
函数描述,最大支持1000个英文字母、数字、空格、逗号、换行符和英文句号,支持中文。
|
memorySize
|
否
|
number
|
128
|
函数运行时内存大小,可选范围64、128MB-3072MB,并且以128MB 为阶梯。
|
timeout
|
否
|
number
|
3
|
函数最长执行时间,单位为秒,可选值范围1-900秒。
|
initTimeout
|
否
|
number
|
3
|
函数初始化超时时间,单位为秒,可选值范围3-300秒。
|
eip
|
否
|
boolean
|
false
|
是否固定出口 IP。
|
publicAccess
|
否
|
number
|
true
|
是否开启公网访问。
|
environment
|
否
|
Environment
|
-
|
函数的环境变量,配置参见 环境变量。
|
vpcConfig
|
否
|
Vpc
|
-
|
函数的私有网络配置,配置参数参见 私有网络。
|
layers
|
否
|
Layer[]
|
-
|
云函数绑定的 layer,配置参数参见 层配置。
|
deadLetter
|
否
|
DeadLetter
|
-
|
死信队列配置,配置参数参见 死信队列。
|
cls
|
否
|
Cls
|
-
|
函数日志配置,配置参数参见 函数日志。
|
eip
|
否
|
boolean
|
false
|
固定出口 IP。默认为 false,即不启用。
|
asyncRunEnable
|
否
|
boolean
|
false
|
是否启用异步执行(长时间运行),默认最大支持12小时,如果配置为 true,cls(函数日志配置) 必选。此参数只有在函数创建时才有效。
|
traceEnable
|
否
|
boolean
|
false
|
是否启用状态追踪,如果要配置为 true,必须配置 asyncRunEnable 同时为 true。
|
msgTTL
|
否
|
number
|
21600
|
异步执行消息保留时间,单位秒,仅 asyncRunEnable 为 true 时有效。
|
retryNum
|
否
|
number
|
2
|
重试次数,仅 asyncRunEnable 为 true 时有效。
|
installDependency
|
否
|
boolean
|
false
|
是否自动在线安装依赖。
|
tags
|
否
|
-
|
-
|
标签设置。可设置多对 key-value 的键值对。
|
cfs
|
否
|
Cfs[]
|
-
|
文件系统挂载配置,用于云函数挂载文件系统。配置参数详情请参见 文件系统。
|
ignoreTriggers
|
否
|
boolean
|
false
|
是否忽略触发器,如果设置为 true,events 参数将不起作用,组件将至更新函数配置和代码。
|
events
|
否
|
Event[]
|
-
|
触发器配置。
|
image
|
否
|
Image
|
-
|
镜像配置。
|
protocolType
|
否
|
string
|
-
|
HTTP 函数支持的访问协议。当前支持 WebSockets 协议,值为 WS,只有 type:web 时此配置生效。
|
protocolParams
|
否
|
ProtocolParams
|
-
|
HTTP 函数配置 ProtocolType 访问协议,当前协议可配置的参数,主要是配置空闲超时时间。
|
provisionedNum
|
否
|
number
|
-
|
预置并发数量。需注意所有版本的预置并发数总和存在上限限制。当前的上限是函数最大并发配额为100。
|
qualifier
|
否
|
number
|
-
|
函数的版本号,请注意:\$LATEST 版本不支持预置并发。
|
Src
代码目录。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
src
|
是
|
string
|
-
|
代码路径。与 object 不能同时存在。
|
exclude
|
否
|
string[]
|
-
|
不包含的文件或路径,遵守 glob 语法。
|
bucket
|
否
|
string
|
-
|
存储桶名称,配置前需确认桶是否存在。
|
object
|
否
|
string
|
-
|
部署的代码在存储桶中的路径。
|
注意:
如果配置了 src,表示部署 src 参数指定目录的代码并压缩成 zip 后上传到对应的存储桶中;如果配置了 object,表示获取对应存储桶中 object 对应的代码进行部署。
Environment
环境变量。
参数名称
|
类型
|
描述
|
variables
|
Array of Variable
|
环境变量参数,包含多对 key-value 的键值对。
|
Vpc
私有网络。
参数名称
|
必选
|
类型
|
描述
|
vpcId
|
否
|
string
|
私有网络的 Id
|
subnetId
|
否
|
string
|
子网的 Id
|
DeadLetter
死信队列。
名称
|
必选
|
类型
|
描述
|
Type
|
是
|
string
|
死信队列模式
|
Name
|
是
|
string
|
死信队列名称
|
FilterType
|
否
|
string
|
死信队列主题模式的标签形式
|
Layer
层配置。
参数名称
|
必选
|
类型
|
描述
|
name
|
是
|
string
|
层名称
|
version
|
是
|
number
|
层版本号
|
Cls
函数日志。
参数名称
|
必选
|
类型
|
描述
|
logsetId
|
否
|
string
|
日志集 Id
|
topicId
|
否
|
string
|
日志主题 Id
|
Cfs
文件系统,使用文件系统必须配置 私有网络,并保证 cfs 文件系统与云函数在同一个私有网络下。
参数名称
|
必选
|
类型
|
描述
|
cfsId
|
是
|
String
|
文件系统实例 Id
|
mountInsId
|
是
|
String
|
文件系统挂载点 Id
|
localMountDir
|
是
|
String
|
本地挂载点
|
remoteMountDir
|
是
|
String
|
远程挂载点
|
Event
触发器,触发器配置为数组,按照配置的 name 和 param 创建触发器。支持以下触发器:
触发器类型
|
描述
|
timer
|
定时触发器
|
apigw
|
API 网关触发器
|
cos
|
COS 触发器
|
cmq
|
CMQ 主题订阅触发器
|
ckafka
|
CKafka 触发器
|
cls
|
CLS 触发器
|
mps
|
MPS 触发器
|
注意:
对于 API 网关触发器,如果没有配置网关服务 ID(serviceId),则自动创建一个 API 网关服务,对于其他触发器仅执行配置触发器,不涉及服务资源创建。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
parameters
|
是
|
object
|
-
|
根据触发器类型,参考触发器参数表。
|
name
|
否
|
string
|
触发器类型-${name}-${stage}-${app}
|
触发器名称。
|
详情请参见 官方触发器配置描述。
定时触发器
详情请参见 定时触发器说明。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
qualifier
|
否
|
string
|
$DEFAULT
|
触发版本,默认为 $DEFAULT,即默认流量。
|
cronExpression
|
是
|
string
|
-
|
触发时间,为 Cron 表达式。
|
argument
|
否
|
object
|
-
|
附加信息参数。
|
enable
|
否
|
boolean
|
false
|
触发器是否启用。
|
COS 触发器
详情请参见 COS触发器说明。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
qualifier
|
否
|
string
|
$DEFAULT
|
触发版本,默认为 $DEFAULT,即默认流量。
|
bucket
|
是
|
string
|
-
|
配置的 COS Bucket,仅支持选择同地域下的 COS 存储桶。
|
filter
|
是
|
CosFilter
|
-
|
COS 文件名的过滤规则。
|
events
|
是
|
string
|
-
|
详情请参见 COS 的事件类型。
|
enable
|
否
|
boolean
|
false
|
触发器是否启用。
|
CMQ 触发器
说明:
添加 CMQ 触发器,需要给 SLS_QcsRole 添加 QcloudCMQFullAccess 策略。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
qualifier
|
否
|
string
|
$DEFAULT
|
触发版本,默认为 $DEFAULT,即默认流量。
|
name
|
是
|
string
|
-
|
CMQ Topic 主题队列名称。
|
filterType
|
否
|
number
|
-
|
消息过滤类型,1为标签类型,2为路由匹配类型。
|
filterKey
|
否
|
string[]
|
-
|
当 filterType 为1时表示消息过滤标签,当 filterType 为2时表示 Binding Key。
|
enable
|
否
|
boolean
|
false
|
触发器是否启用。
|
Ckafka 触发器
说明:
添加 CKafka 触发器,需要给 SLS_QcsRole 添加 QcloudCKafkaFullAccess 策略。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
qualifier
|
否
|
string
|
$DEFAULT
|
触发版本,默认为 $DEFAULT,即默认流量。
|
name
|
是
|
string
|
-
|
配置连接的 CKafka 实例,仅支持选择同地域下的实例。
|
topic
|
是
|
string
|
-
|
支持在 CKafka 实例中已经创建的 Topic。
|
maxMsgNum
|
是
|
number
|
100
|
5秒内每汇聚 maxMsgNum 条 Ckafka 消息,则触发一次函数调用。
|
offset
|
是
|
string
|
latest
|
offset 为开始消费 Ckafka 消息的位置,目前只能填写 latest。
|
retry
|
是
|
number
|
10000
|
重试次数,函数调用失败时的最大重试次数。
|
timeout
|
是
|
number
|
60
|
单次触发的最长等待时间,最大60秒。
|
enable
|
否
|
boolean
|
false
|
触发器是否启用。
|
API 网关触发器
说明:
如果配置多个 API 网关触发器,需要配置不同的 serviceName。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
environment
|
否
|
string
|
release
|
发布的环境,填写 release、test 或 prepub,不填写默认为release。
|
serviceId
|
否
|
string
|
-
|
网关 Service ID(不传入则新建一个 Service)。
|
instanceId
|
否
|
string
|
-
|
网关实例 ID,填写则使用独享型实例创建 API 网关,否则创建共享型实例(该项只能在创建时指定,创建后无法修改)。
|
protocols
|
否
|
string[]
|
['http']
|
前端请求的类型,如 http,https,http 与 https。
|
netTypes
|
否
|
string[]
|
['OUTER']
|
网络类型,如 ['OUTER'], ['INNER'] 与['OUTER', 'INNER']
|
serviceName
|
否
|
string
|
-
|
网关 API 名称。如果不传递则默认新建一个名称与触发器名称相同的 Apigw API 名称。
|
description
|
否
|
string
|
-
|
网关 API 描述。
|
endpoints
|
是
|
object[]
|
-
|
详情见 endpoint 参数。
|
endpoints 参数
详情请参见 创建 API 接口。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
path
|
是
|
string
|
-
|
API 的前端路径,如 /path。
|
method
|
否
|
string
|
-
|
API 的前端请求方法,如 GET,支持的参数有:["ANY","GET","HEAD","POST","PUT","DELETE"]
|
apiId
|
否
|
string
|
-
|
API ID。如果不传递则根据 path 和 method 创建一个,传递了直接忽略 path 和 method 参数。
|
apiName
|
否
|
string
|
-
|
API 名称。
|
description
|
否
|
string
|
-
|
API 描述。
|
enableCORS
|
否
|
boolean
|
false
|
是否需要开启跨域。
|
responseType
|
否
|
string
|
-
|
自定义响应配置返回类型,现在只支持 HTML、JSON、TEST、BINARY、XML(此配置仅用于生成 API 文档提示调用者)。
|
serviceTimeout
|
否
|
number
|
15
|
API 的后端服务超时时间,单位是秒,取值范围:1-1800 秒。
|
param
|
否
|
Parameter
|
-
|
前端参数。
|
function
|
否
|
Function
|
-
|
SCF 配置。
|
usagePlan
|
否
|
UsagePlan
|
-
|
使用计划。
|
auth
|
否
|
Auth
|
-
|
API 密钥配置。
|
authType
|
否
|
string
|
NONE
|
NONE 或 APP。
|
app
|
否
|
App
|
-
|
API 绑定 APP 配置。
|
isBase64Encoded
|
否
|
boolean
|
false
|
是否开启 Base64 编码,只有后端为 scf 时才会生效。
|
isBase64Trigger
|
否
|
boolean
|
false
|
是否开启 Base64 编码的 header 触发,只有后端为 scf 时才会生效。
|
base64EncodedTriggerRules
|
否
|
Base64Rule[]
|
[]
|
Header 触发 Base64 编码规则,总规则数不能超过10,只有 isBase64Trigger 设置为 true 才有效。
|
Parameter
前端参数。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
name
|
否
|
string
|
-
|
API 的前端参数名称。
|
position
|
否
|
string
|
-
|
API 的前端参数位置。当前仅支持 PATH、QUERY、HEADER 。
|
required
|
否
|
boolean
|
-
|
API 的前端参数是否必填,true:表示必填,false:表示可选。
|
type
|
否
|
string
|
-
|
API 的前端参数类型,如 String、Int 等。
|
defaultValue
|
否
|
string
|
-
|
API 的前端参数默认值。
|
desc
|
否
|
string
|
-
|
API 的前端参数备注。
|
Function
SCF 配置。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
isIntegratedResponse
|
否
|
boolean
|
false
|
是否启用 SCF 集成响应。
|
functionQualifier
|
否
|
string
|
$DEFAULT
|
触发器关联的 SCF 版本 。
|
UsagePlan
使用计划,详情请参见 创建使用计划。
参数名称
|
必选
|
类型
|
描述
|
usagePlanId
|
否
|
string
|
用户自定义使用计划 ID。
|
usagePlanName
|
否
|
string
|
用户自定义的使用计划名称。
|
usagePlanDesc
|
否
|
string
|
用户自定义的使用计划描述。
|
maxRequestNum
|
否
|
number
|
请求配额总数,如果为空,将使用-1作为默认值,表示不开启。
|
Auth
API 密钥配置,详情请参见 创建密钥。
参数名称
|
必选
|
类型
|
描述
|
secretName
|
否
|
string
|
密钥名称
|
secretIds
|
否
|
string
|
密钥 ID
|
APP
API 绑定 APP 配置,详情请参见 应用管理。
参数名称
|
必选
|
类型
|
描述
|
name
|
否
|
string
|
用户自定义 APP 名称
|
id
|
否
|
string
|
APP ID
|
description
|
否
|
string
|
用户自定义 APP 描述
|
Base64Rule
Header 触发 Base64 编码规则,总规则数不能超过 10,只有 isBase64Trigger 设置为 true 时生效。详情请参见 Base64 编码。
参数名称
|
类型
|
描述
|
name
|
string
|
进行编码触发的 header,可选值 "Accept" 和 "Content_Type" 对应实际数据流请求 header 中的 Accept 和 Content-Type。
|
value
|
string[]
|
进行编码触发的 header 的可选值数组, 数组元素的字符串最大长度为40,元素可以包括数字,英文字母以及特殊字符,特殊字符的可选值为: . + * - / _
|
例如 value 可以配置为:
value:- application/zip
CLS 触发器
说明:
添加 CLS 触发器,需要给 SLS_QcsRole 添加 QcloudCLSFullAccess 策略。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
qualifier
|
否
|
string
|
$DEFAULT
|
触发版本,默认为 $DEFAULT,即默认流量。
|
topicId
|
是
|
string
|
-
|
CLS 日志主题 ID。
|
maxWait
|
否
|
number
|
60
|
最长等待时间,单位秒。
|
enable
|
否
|
boolean
|
false
|
触发器是否启用。
|
MPS 触发器
说明:
添加 MPS 触发器,需要给 SLS_QcsRole 添加 QcloudMPSFullAccess 策略。
参数名称
|
必选
|
类型
|
默认值
|
描述
|
qualifier
|
否
|
string
|
$DEFAULT
|
触发版本,默认为 $DEFAULT,即默认流量。
|
type
|
是
|
string
|
-
|
事件类型。
WorkflowTask:工作流任务
EditMediaTask:视频编辑任务
|
enable
|
否
|
boolean
|
false
|
触发器是否启用。
|
关于 API 网关 Base64 编码
注意:
开启 API 网关 Base64 编码的后端必须是云函数。
如果需要开启 API 网关 Base64 编码,必须配置 isBase64Encoded 为 true,此时每次请求的请求内容都会被 Base64 编码后再传递给云函数。如果想要部分请求 Base64 编码,可以通过配置 isBase64Trigger 为 true,配置 base64EncodedTriggerRules Header 触发规则,此时 API 网关将根据触发规则对请求头进行校验,只有拥有特定 Content-Type 或 Accept 请求头的请求会被 Base64 编码后再传递给云函数,不满足条件的请求将不进行 Base64 编码,直接传递给云函数。详情请参见官方介绍文档 Base64 编码。
Image
镜像相关配置如下:
参数名称
|
必选
|
类型
|
默认值
|
描述
|
imageUrl
|
是
|
string
|
-
|
镜像版本 URL。
|
registryId
|
否
|
string
|
-
|
容器镜像服务实例 ID,使用企业版镜像时必选。
|
imageType
|
否
|
string
|
personal
|
镜像类型,支持:personal、enterprise、public。
|
command
|
否
|
string
|
-
|
容器启动命令,默认使用镜像中的 Entrypoint 或者 CMD。
|
args
|
否
|
string
|
-
|
容器启动参数,默认使用镜像中的 CMD。
|
imageUrl 拼接格式为 <仓库地址>:<镜像版本>@<镜像ID(sha256)>,示例如下:
ccr.ccs.tencentyun.com/sls-scf/nodejs_test:latest@sha256:xxx
ProtocolParams
详情请参见 创建函数。HTTP 函数支持其他访问协议的参数如下:
参数名称
|
必选
|
类型
|
描述
|
wsParams
|
否
|
WSParams
|
WebSockets 协议支持的参数。
|
WSParams
HTTP 函数通过 WebSockets 协议访问时的参数如下:
参数名称
|
必选
|
类型
|
描述
|
idleTimeOut
|
否
|
int
|
空闲超时时间, 单位秒,默认15s。可配置范围1-1800s。
|