本文介绍Go Initializer函数的结构和特点。

Initializer函数定义

Initializer函数是实例的初始化函数,保证同一实例成功且仅成功执行一次。

说明 成功且仅成功一次的含义是,即使存在执行两次的情况,例如第一次失败,第二次成功,但也只会重试一次。

函数定义,只有一个context参数,使用方法和事件函数一样。

function(ctx context.Context)

Initializer函数使用示例

使用Initializer需要两步:

  1. 在代码中,通过fc.RegistryInitializerFunction(Init)注册一个Initializer函数。
  2. 在函数配置中,配置Initializer相关信息。具体步骤,请参见管理函数

示例如下:

package main

import (
    "context"
    "log"
    "github.com/aliyun/fc-runtime-go-sdk/fc"
)

var (
    count int = 1
)

func Init(ctx context.Context) {
    count += 1000
}

func main() {
    fc.RegisterInitializerFunction(Init)
    fc.Start(HandleRequest)
}

func HandleRequest() (int, error) {
    count += 1
    log.Println("count: ", count)
    return count, nil
}