17做网站新塘牛仔城,建设银行官方网站是什么,北京做公司网站公司,自己的简历网站怎么做首先介绍下在本文出现的几个比较重要的概念#xff1a; 函数计算#xff08;Function Compute#xff09;: 函数计算是一个事件驱动的服务#xff0c;通过函数计算#xff0c;用户无需管理服务器等运行情况#xff0c;只需编写代码并上传。函数计算准备计算资源#xff…
首先介绍下在本文出现的几个比较重要的概念 函数计算Function Compute: 函数计算是一个事件驱动的服务通过函数计算用户无需管理服务器等运行情况只需编写代码并上传。函数计算准备计算资源并以弹性伸缩的方式运行用户代码而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考。 Fun: Fun 是一个用于支持 Serverless 应用部署的工具能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件template.yml协助您进行开发、构建、部署操作。Fun 的更多文档 参考。 备注: 本文介绍的技巧需要 Fun 版本大于等于 3.6.4。
转存失败重新上传取消
效果预览
本文涉及到的两个应用示例部署后的链接点击预览效果
Gin 简单示例http://gentest.functioncompute.com/pingBeego 简单示例http://beegotest.functioncompute.comGin 博客网站示例http://mdblog.functioncompute.com
环境准备
首先按照 Fun 的安装文档里介绍的方法将 Fun 安装到本机。PS: 本文介绍的方法不需要安装 Docker仅仅安装 Fun 即可最简单的方式就是直接下载可执行的二进制文件。
安装完成后可以执行 fun --version 检查 Fun 是否安装成功。
示例一迁移 gin 示例到函数计算
首先我们按照官方示例的步骤安装 gin需要 golang 版本在 1.11 以上
go get -u github.com/gin-gonic/gin
创建一个 example.go内容填写如下
package mainimport github.com/gin-gonic/ginfunc main() {r : gin.Default()r.GET(/ping, func(c *gin.Context) {c.JSON(200, gin.H{message: pong,})})r.Run() // listen and serve on 0.0.0.0:8080 (for windows localhost:8080)
}
使用下面的命令启动应用
go run example.go
然后访问 localhost:8080/ping可以看到返回结果如下 最后直接使用 fun deploy 即可部署。
fun deploy
我们这里详细介绍下第一次部署流程
Fun 首先检测到这不是一个 Fun 项目会提示是否自动创建按下回车或者输入 y 即可然后 Fun 又会尝试去检测应用的启动端口函数计算要求必须启动在 0.0.0.0:9000)如果不匹配则会协助修改按下回车Fun 会自动检测构建生成的可执行程序如果检测不到则提示用户使用指定命令进行编译按下回车后就会自动进行编译了编译完成后会自动生成 Fun 所需要的 bootstrap 文件以及 template.yml 文件然后会进行自动部署操作在部署前会首先列出本次部署带来的变更如果确认上面的变更没有问题再按下回车即可开始资源的部署流程。
部署完成后可以看到会自动生成一个可以测试访问的临时域名 14118335-1911504709953557.test.functioncompute.com通过这个临时域名可以用于开发、测试时预览应用。
使用该临时域名访问应用的 API 接口 14118335-1911504709953557.test.functioncompute.com/ping 测试效果如下 备注临时域名仅仅用作演示以及开发是有时效的如果用作生产请绑定已经备案的域名。
示例二迁移 beego 示例到函数计算
首先我们按照官方示例的步骤搭建 beego 应用
go get github.com/astaxie/beego
创建一个 hello.go内容填写如下
package mainimport github.com/astaxie/beegofunc main(){beego.Run()
}
使用下面的命令启动应用
go run hello.go
然后访问 localhost:8080,可以看到返回结果。
最后部署直接使用 fun deploy 经历类似示例一的流程后就可以通过 Fun 返回的临时域名预览应用了。
示例三迁移 gin 搭建的博客应用到函数计算
示例三我们选择一个稍微复杂一些的应用我们按照官方帮助文档的步骤搭建一个基于 gin 的 blog 应用
1. 克隆项目到本地直接下载 zip 包也可以
git clone https://github.com/tanhe123/mdblog.git
2. 修改配置文件
在 config 目录下有一个配置文件 config.example.toml将其复制一份并修改名称为 config.toml然后修改里面的几个配置
将 port 8091 修改为 port 9000表示应用启动时启动在 9000 端口。将 debug true 修改为 debug false表示使用生产版本将 dir logs 修改为 dir /tmp表示日志写到 /tmp 目录不挂载 NAS 的情况下函数计算只有该目录是可以写的
3. 编译并运行应用
go build # 会生成一个 mdblog 的二进制可执行程序
./mdblog # 直接运行该可执行程序
如果遇到网络问题可以使用 https://goproxy.cn/ 加速。
访问 http://localhost:9000 预览效果
4. 部署
最后本地测试没问题后我们需要发布到函数计算上虽然这个示例比起上面两个代码层面要复杂很多但部署流程是一样的直接执行 fun deploy 然后一路回车即可。
本示例生成的临时域名为https://14118335-1911504709953557.test.functioncompute.com
打开可以看到如下效果 打开具体的一篇博客效果如下 总结
我们通过三个示例介绍了如何部署一个 go 应用到函数计算上从这三个例子我们可以发现迁移一个 go 应用到函数计算是非常容易的主要精力还是放在了如何在本地配置并启动应用然后部署只需要简单的通过 fun deploy 命令即可。部署完成后即可享受到函数计算带来的弹性伸缩、按量付费、免运维等特性。
更多参考
轻松搭建基于 Serverless 的 ThinkPHP 应用Funcraft“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践做最懂云原生开发者的技术圈。” 原文链接 本文为云栖社区原创内容未经允许不得转载。