本文以天翼云函数计算平台提供的Go SDK依赖库为例,介绍如何为您的Go代码安装依赖,打包并部署代码至函数计算。
注意由于函数计算的运行环境是Linux系统,在Windows系统或macOS系统安装依赖库带有跟当前系统相关二进制文件,会导致您的代码包部署到函数计算后运行失败。建议您使用Linux系统进行以下操作。
准备工作
- 函数计算平台提供Go SDK,您可以执行以下命令把它下载到本地:
go get gitee.com/ctyunfaas/cf-runtime-go-sdk/cf
- 创建源码文件main.go,并通过import导入依赖库:
package main import ( "context" "gitee.com/ctyunfaas/cf-runtime-go-sdk/cf" ) func HandleRequest(ctx context.Context) (string, error) { return "hello world", nil } func main() { cf.Start(HandleRequest) }
编译打包
在Linux下编译打包
GOOS=linux CGO_ENABLED=0 go build main.go
zip fc-golang-demo.zip main
注:在Linux系统建议使用纯静态编译,通过配置CGO_ENABLED=0,确保可执行文件不依赖任何外部依赖库(如libc库),避免出现编译环境和Go运行时环境依赖库的兼容问题。
在macOS(或其它ARM架构机器)下编译打包
GOOS=linux GOARCH=amd64 go build main.go
zip fc-golang-demo.zip main
在Windows下编译打包
set GOOS=linux
set GOARCH=amd64
go build -o main main.go
进入当前编译目录,选中main二进制文件,单击鼠标右键,选择打包为ZIP包。
部署到函数计算
在函数计算控制台找到对应的目标函数,然后在函数详情页面的右上角,点击上传代码-上传zip进行上传刚打包的ZIP文件。