# Functions Framework Spec ## Context https://github.com/OpenFunction/functions-framework/blob/main/docs/v0.3.0/OpenFunction-context-specs.md Context 中的函数元数据信息在函数生命周期内默认为只读,如: - name,函数名称 - version,函数版本 - requestID,函数请求 id - port,服务监听端口 - inputs,***函数输入资源*** 名称与配置信息映射表 - outputs,***函数输出资源*** 名称与配置信息映射表 - prePlugins,在函数之前执行的插件清单 - postPlugins,在函数之后执行的插件清单 - pluginsTracing,tracing 相关配置信息 ## SDK ### Context 相关 即提供获取 Context 中的函数元数据信息的能力。 ### 通用功能 - publish,将数据发送至指定的 ***函数输出资源*** - 一对一发送,将数据发送至一个 ***函数输出资源*** - 一对多发送,将数据发送至多个 ***函数输出资源*** ## 事件 在 Functions-framework 内部需要通过 CloudEvent 的方式传递用户数据,规则如下: - 收到原始事件时,判断原始事件是否为 CloudEvent 格式 - 是 CloudEvent 格式,判断其是否具备 *内部事件标识* - 具备 *内部事件标识*,则解压该原始事件,取出用户数据传递给用户函数进行处理 - 不具备 内部事件标识,则将该原始事件传递给用户函数进行处理 - 不是 CloudEvent 格式,则将该原始事件传递给用户函数进行处理 - 发送用户数据时,判断是否需要将用户数据封装为 *内部事件* - 需要,则使用 CloudEvent 事件格式封装用户数据,并附加 *内部事件标识*,之后发送至 ***函数输出资源*** - 不需要,则将用户数据发送至 ***函数输出资源***