更新时间:2023-12-29 GMT+08:00

开发事件函数

函数定义

函数有明确的接口定义,如下所示:

func Handler (payload []byte, ctx context.RuntimeContext)

  • 入口函数名(Handler):入口函数名称。
  • 执行事件体(payload): 函数执行界面由用户输入的执行事件参数, 格式为JSON对象。
  • 上下文环境(ctx ):Runtime提供的函数执行上下文,其接口定义在SDK接口说明。

SDK接口

FunctionGraph函数GoSDK提供了Context接口和日志记录接口。Go SDK下载(Go SDK下载.sha256)。

  • Context接口

    Context接口提供函数获取函数执行上下文,例如,用户委托的AccessKey/SecretKey、当前请求ID、函数执行分配的内存空间、CPU数等。

    Context接口说明如表1所示。

    表1 Context类上下文方法说明

    方法名

    方法说明

    getRequestID( )

    获取请求ID。

    getRemainingTimeInMilligetRunningTimeInSecondsSeconds ( )

    获取函数剩余运行时间。

    getAccessKey( )

    获取用户委托的AccessKey(有效期24小时),使用该方法需要给函数配置委托。

    说明:

    当前函数工作流已停止维护Runtime SDK 中getAccessKey接口,您将无法使用getAccessKey获取临时AK。

    getSecretKey( )

    获取用户委托的SecretKey(有效期24小时),使用该方法需要给函数配置委托。

    说明:

    当前函数工作流已停止维护Runtime SDK 中getSecretKey接口,您将无法使用getSecretKey获取临时SK。

    getSecurityAccessKey()

    获取用户委托的SecurityAccessKey(有效期24小时),使用该方法需要给函数配置委托。

    getSecuritySecretKey()

    获取用户委托的SecuritySecretKey(有效期24小时),使用该方法需要给函数配置委托。

    getSecurityToken()

    获取用户委托的SecurityToken(有效期24小时),使用该方法需要给函数配置委托。

    getUserData(string key)

    通过key获取用户通过环境变量传入的值。

    getFunctionName( )

    获取函数名称。

    getRunningTimeInSeconds ( )

    获取函数超时时间。

    getVersion( )

    获取函数的版本。

    getMemorySize( )

    分配的内存。

    getCPUNumber( )

    获取函数占用的CPU资源。

    getPackage( )

    获取函数组。

    getToken( )

    获取用户委托的token(有效期24小时),使用该方法需要给函数配置委托。

    getLogger( )

    获取context提供的logger方法(默认会输出时间、请求ID等信息)。

    getAlias

    获取函数的别名

    GetToken()、GetAccessKey()和GetSecretKey()方法返回的内容包含敏感信息,请谨慎使用,避免造成用户敏感信息的泄露。

  • 日志接口Go SDK日志接口日志说明如表2所示。
    表2 日志接口说明表

    方法名

    方法说明

    RuntimeLogger()

    • 记录用户输入日志对象,包含方法如下:Logf(format string, args ...interface{})
    • 该方法会将内容输出到标准输出,格式:"时间-请求ID-输出内容",示例如下:2017-10-25T09:10:03.328Z 473d369d-101a-445e-a7a8-315cca788f86 test log output。

执行结果

执行结果由3部分组成:函数返回、执行摘要和日志。

表3 执行结果说明

参数项

执行成功

执行失败

函数返回

返回函数中定义的返回信息。

返回包含错误信息和错误类型的JSON文件。格式如下:

{
    "errorMessage": "", 
    "errorType":"", 
}

errorMessage:Runtime返回的错误信息

errorType:错误类型

执行摘要

显示请求ID、配置内存、执行时长、实际使用内存和收费时长。

显示请求ID、配置内存、执行时长、实际使用内存和收费时长。

日志

打印函数日志,最多显示4KB的日志。

打印报错信息,最多显示4KB的日志。