函数计算CFC

    BCE-Serverless-Application-Model规范

    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"
    上一篇
    开发语言
    下一篇
    BSAM-CLI使用示例