如何使用阿里云函数计算快速部署一个简单的ip转地址的http接口服务?

简介: 函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。

什么是函数计算?

函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。

借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。

背景说明:

之前网上有好多的ip转地址的接口,但是后来好多都商用了,或者有的转化的不理想,不经意间在gitee上看见有个老哥有个开源的项目https://gitee.com/lionsoul/ip2region 觉得挺不错的,因为我的好多项目都需要这样一个功能,于是想做一个中枢的接口,给我的其他项目通过api的方式调用。这样也方便我后期统一更新这个ip2region的地址库,同时也可以方便的给提供其他小伙伴使用。后来了解到阿里云函数计算有免费的额度,能够弹性扩容,免运维等好处,于是把这位老哥开源的ip转化服务改成了阿里云的函数计算代码。

下面说下步骤:

https://fcnext.console.aliyun.com/cn-beijing/services

1.根据页面的提示先创建一个服务。

2.创建函数,选择使用标准runtime从0创建,因为我只是一个接口服务,用最轻量的形式创建即可。运行环境选择php7.2,目前只有7.2,如果你是把已有的项目迁移进来,或者是php的其他版本,选择后面的自定义运行时。代码包通过我上面的gitee地址下载即可。

这里给官方一个建议直接可以拉去开源的gitee或者github地址的代码,那样更方便些。

3.如何访问。

点击下图里面的url,提示一个文件下载,打开下载的文件,里面是返回的转化后的地址的json,这里为啥是下载呢?使用的阿里云的域名会在头部增加强制下载,绑定自己的域名,通过自己的域名访问就好了。

4.绑定自己的域名

根据下图填写域名然后自己去cname,这里给官方提个小建议,本账号下面的域名添加的时候最好能支持自动cname那样就更方便了。

下面是路由配置  /* 指的是根目录下面所有 指向 这个ip2region这个服务下面的ip2region这个函数下面的最新版本。

5.可以通过自定义域名访问了就。

是不是很简单。

6.使用阿里云的pts对其进行压测看下

业务成功率能到达99%以上,这个结果还是非常满意的。

11.png


7.说下自己的使用感受

首先从成本角度来说,相对于传统的自己去购买服务器,函数计算能够节省很多,尤其是那种短时间高流量大并发的场景,真正能够实现没有业务的情况下零费用。而且每个月还有一定的免费额度。

从安全性角度来说对于之前把代码部署到ecs上面的情况不用由于系统的bug导致中毒导致业务瘫痪了,足够安全,稳定。

运维角度来讲基本没有什么额外的运维工作量,基本做到了免运维。

从系统的业务并发承载量来讲,由于后端能动态扩容,基本也不会产生什么瓶颈了。从上面的压力测试上面看,比自己在ecs上面运行业务代码要可靠的多了

还能够配合阿里生态集成持续交付部署。


虚拟主机时代=>独立主机走红=》vps爆发=》云服务器崛起

函数计算serverless应该是后端服务提供的最终形态。



源代码地址以及说明:

https://gitee.com/wlphp/aliyun-fc-ip2regioin

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
8月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
435 61
|
8月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
426 14
|
10月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
522 35
|
11月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
332 18
|
关系型数据库 MySQL 数据库
vertx 的http服务表单提交与mysql验证
本文介绍了如何使用Vert.x处理HTTP服务中的表单提交,并通过集成MySQL数据库进行验证,包括项目依赖配置、表单HTML代码和完整的Vert.x服务代码。
167 2
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
异步通信 对于BS(Browser-Server 浏览器)架构,很多情景下server的处理时间较长。 如果浏览器发送请求后,保持跟server的连接,等待server响应,那么一方面会对用户的体验有负面影响; 另一方面,很有可能会由于超时,提示用户服务请求失败。
871 0
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
fuser可用于查询文件、目录、socket端口和文件系统的使用进程 1.查询文件和目录使用者 fuser最基本的用法是查询某个文件或目录被哪个进程使用: # fuser -v .
1008 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、dead 当执行new Thread(Runnabler)后,新创建出来的线程处于new状态,这种线程不可能执行 当执行thread.start()后,线程处于runnable状态,这种情况下只要得到CPU,就可以开始执行了。
881 0
|
Java Apache
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
hbase从集群中有8台regionserver服务器,已稳定运行了5个多月,8月15号,发现集群中4个datanode进程死了,经查原因是内存 outofMemory了(因为这几台机器上部署了spark,给spark开的...
943 0
|
Web App开发 前端开发