BCE-Serverless-Application-Model规范
更新时间:2024-07-05
BCE SAM是用来定义百度函数计算CFC无服务器应用架构的模型,为本地开发工具bce-sam-cli提供指引。BCE SAM定义了一组对象,这些对象可以包含在模板定义文件中,以便轻松地描述CFC函数。
当前BCE SAM的版本号为2018-08-30。
BCE SAM模板
Plain Text
1Description:
2 bsam-app
3
4Resources:
5 HelloWorldFunction:
6 Type: BCE::Serverless::Function
7 Properties:
8 CodeUri: hello_world/
9 Handler: app.cfc_handler
10 Runtime: python2.7
11 Environment:
12 Variables:
13 PARAM1: VALUE
14 Events:
15 HelloBos:
16 Type: BOS
17 Properties:
18 Bucket: mybucket
19 Prefix: images/
20 Suffix: .jpg
21 EventTypes: [PutObject, PostObject]
22 HelloDuerOS:
23 Type: DuerOS
24
说明:
所有的属性字段都是大小写敏感的。
规范详解
描述符合BCE SAM的CFC应用程序的文件格式为YAML,它包含了Resource、Property和Event Source三个部分,它们共同定义了一个CFC应用。
Resource
BCE::Serverless::Function
表示一个CFC函数,其包含的属性如下:
属性名 | 类型 | 描述 |
---|---|---|
Handler | string | 必需. 用户代码中的启动函数 |
Runtime | string | 必需. 运行时环境 |
CodeUri | string | 必需. 代码路径 |
Description | string | 函数的描述 |
MemorySize | integer | 每次调用函数分配的内存大小(MB), 默认为128 |
Timeout | integer | 函数运行超时时间,默认为3s |
Environment | Environment Object | 设置函数执行时的环境变量 |
Events | map of string to Event Source Object | 设置函数触发器的键值对 |
Property
Environment Object
描述函数环境变量属性的对象,属性如下:
属性名 | 类型 | 描述 |
---|---|---|
Variables | map of string to string | 定义环境变量键值对,其中变量名称是键,变量值是值。变量名称仅限于字母数字字符,第一个字符必须是字母。值仅限于字母数字字符和以下特殊字符_(){} [] $ * + - \ /“#',;。@ !? 。 |
范例:
Plain Text
1Variables:
2 TABLE_NAME: my-table
3 STAGE: prod
Event Source Object
描述函数触发器的对象,属性如下:
属性名 | 类型 | 描述 |
---|---|---|
Type | string | 必需. 触发器类型,目前支持的种类有"BOS","HTTP","DuerOS" |
Properties | map | 触发器的详细配置键值对,根据Type类型而定,详细参考Event Source Types |
BOS触发器范例:
Plain Text
1Type: BOS
2Properties:
3 Bucket: myBucket
4 EventTypes: [PutObject, PostObject]
5 Prefix: images/
6 Suffix: .jpg
DuerOS触发器范例:
Plain Text
1Type: DuerOS
HTTP触发器范例:
Plain Text
1Type: HTTP
2Properties:
3 ResourcePath: /hello-world
4 Method: [GET, POST]
5 AuthType: anonymous
Event Source
BOS
配置BOS触发器,当Bucket上发生您指定的事件时,BOS会向CFC调用您的函数。
属性名 | 类型 | 描述 |
---|---|---|
Bucket | string | 必需. BOS bucket 名字 |
EventTypes | string | List of string | 必需. 触发事件类型 |
Prefix | string | 前缀 |
Suffix | string | 后缀 |
DuerOS
创建DuerOS触发器,允许DuerOS平台调用您的CFC函数。 DuerOS无其它属性。
HTTP
配置HTTP触发器,将函数关联到一个URL上,通过HTTP方法执行函数。
属性名 | 类型 | 描述 |
---|---|---|
ResourcePath | string | 必需. 访问路径,例如/hello-world |
Method | string | List of string | 必需. 触发器匹配的HTTP方法 |
AuthType | string | 必需. 身份验证方式,可选值为"iam","anonymous" |