- 1.1 简介
- 1.1.1 基本概念
- 1.1.1.1 工作空间
- 1.1.1.2 权限
- 1.1.1.3 运行环境
- 1.1.1.4 函数
- 1.1.1.5 触发器
- 1.2 快速上手
- 1.2.1 整体流程
- 1.2.2 创建空间
- 1.2.3 创建函数
- 1.2.4 创建触发器
- 1.2.5 测试
- 1.2.6 查看日志与监控
- 1.3 编程模型
- 1.3.1 Python2编程模型
- 1.3.2 Python3编程模型
- 1.3.3 Java编程模型
- 1.3.4 Golang编程模型
- 1.3.5 Nodejs编程模型
- 1.4 命令行工具
- 1.4.1 安装
- 1.4.2 配置
- 1.4.3.1 help
- 1.4.3.2 config
- 1.4.3.3 version
- 1.4.3.4 space
- 1.4.3.4.1 list
- 1.4.3.4.2 create
- 1.4.3.4.3 update
- 1.4.3.4.4 delete
- 1.4.3.5 func
- 1.4.3.5.1 list
- 1.4.3.5.2 create
- 1.4.3.5.3 update
- 1.4.3.5.4 delete
- 1.4.3.5.5 updatecode
- 1.4.3.6 invoke
- 1.4.3.7 log
- 1.4.3.8 runtime
- 1.4.3.9 trigger
- 1.4.3.9.1 create
- 1.4.3.9.2 list
- 1.4.3.9.3 delete
- 1.5 应用示例
- 1.5.1 支持用户上传ZIP包
- 1.5.2 集成小米FDS服务
- 1.5.3 集成小米Talos服务
- 1.5.4 集成小米EMQ服务
- 1.5.5 集成小米SDS服务
- 1.5.6 死信队列
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.3.4 Golang编程模型
示例代码:
package main
import (
"fmt"
"encoding/json"
)
type Cmd struct {
Mid int
}
func Handler(b []byte) []byte{
cmd := &Cmd{}
err := json.Unmarshal(b, cmd)
if err != nil {
fmt.Println("json format error:", err)
}
fmt.Println("cmd:", cmd)
result, _ := json.Marshal(cmd)
return result
}
上述文件保存到hello.go的文件中,需要把hello.go文件编译成so文件,然后在将so文件上传到函数计算服务平台。 需要注意的是,编译后的文件必须以.so结尾,否则无法在函数计算平台上执行。 由于函数计算内部golang运行环境为alpine linux,所以需要用户将go文件编译成alpine环境的so文件。
用户可以自己构建一个函数计算函数编译镜像来进行代码的编译,也可以直接从dockerhub上下载已经打包的镜像, 打包好的镜像为:xiaomifaas/golang:1.9-alpine3.6, Dockerfile如下:
FROM golang:1.9-alpine3.6
RUN apk --update --no-cache add libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc
镜像下载以后,切换到go文件的目录,执行如下命令即可生成main.so文件:
docker run --rm -v $(pwd):/build -w /build xiaomifaas/golang:1.9-alpine3.6 go build -buildmode=plugin -o main.so
然后用户可以直接上传.so文件或者打包so文件成zip文件之后,上传zip文件。打包.so文件可以减少文件大小:
zip -r code.zip main.so
到函数计算页面创建函数,函数入口是代码中函数的名字,此例中为Handler,上传main.so或者code.zip文件,测试数据为:
{
"Mid": 3
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论