BCE-Serverless-Application-Model规范
更新时间:2024-07-05
BCE SAM是用来定义百度函数计算CFC无服务器应用架构的模型,为本地开发工具bce-sam-cli提供指引。BCE SAM定义了一组对象,这些对象可以包含在模板定义文件中,以便轻松地描述CFC函数。
当前BCE SAM的版本号为2018-08-30。
BCE SAM模板
Description:
bsam-app
Resources:
HelloWorldFunction:
Type: BCE::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: app.cfc_handler
Runtime: python2.7
Environment:
Variables:
PARAM1: VALUE
Events:
HelloBos:
Type: BOS
Properties:
Bucket: mybucket
Prefix: images/
Suffix: .jpg
EventTypes: [PutObject, PostObject]
HelloDuerOS:
Type: DuerOS
说明:
所有的属性字段都是大小写敏感的。
规范详解
描述符合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 | 定义环境变量键值对,其中变量名称是键,变量值是值。变量名称仅限于字母数字字符,第一个字符必须是字母。值仅限于字母数字字符和以下特殊字符_(){} [] $ * + - \ /“#',;。@ !? 。 |
范例:
Variables:
TABLE_NAME: my-table
STAGE: prod
Event Source Object
描述函数触发器的对象,属性如下:
属性名 | 类型 | 描述 |
---|---|---|
Type | string | 必需. 触发器类型,目前支持的种类有"BOS","HTTP","DuerOS" |
Properties | map | 触发器的详细配置键值对,根据Type类型而定,详细参考Event Source Types |
BOS触发器范例:
Type: BOS
Properties:
Bucket: myBucket
EventTypes: [PutObject, PostObject]
Prefix: images/
Suffix: .jpg
DuerOS触发器范例:
Type: DuerOS
HTTP触发器范例:
Type: HTTP
Properties:
ResourcePath: /hello-world
Method: [GET, POST]
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" |