更新时间:2026-01-07 GMT+08:00

Go函数开发指南

函数定义

建议使用Go 1.x版本。

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

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

  • 入口函数名(Handler):入口函数名称,需和函数执行入口处用户自定义的入口函数名称一致(首字母必须大写)。
  • 执行事件体(payload): 函数执行界面由用户输入的执行事件参数, 格式为JSON对象。
  • 上下文环境(ctx ):Runtime提供的函数执行上下文,其接口定义在SDK接口说明。

SDK接口

  • Context接口

    Context类中提供了许多上下文方法供用户使用,SDK下载地址见表1。其声明和功能如表1所示。

    表1 Context类上下文方法说明

    方法名

    方法说明

    GetRequestID() string

    获取请求ID。

    GetRemainingTimeInMilliSeconds()

    获取函数剩余运行时间。

    GetAccessKey() string

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

    说明:

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

    GetSecretKey() string

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

    说明:

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

    getSecurityAccessKey()

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

    getSecuritySecretKey()

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

    getSecurityToken()

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

    GetUserData(key string) string

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

    GetFunctionName() string

    获取函数名称。

    GetRunningTimeInSeconds() int

    获取函数超时时间。

    GetVersion() string

    获取函数的版本。

    GetMemorySize() int

    分配的内存。

    GetCPUNumber() int

    获取函数占用的CPU资源。

    GetProjectID() string

    获取projectID。

    GetPackage() string

    获取函数组。

    GetToken() string

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

    GetLogger() context.RuntimeLogger

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

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

  • 日志接口

    FunctionGraph中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的日志。