为了娃的暑期课,老父亲竟然用上了阿里云高大上的 Serverless FaaS!!!

本文涉及的产品
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,1个月黄金款+200核时
资源编排,不限时长
简介: 事件的起因是,最近家里的俩娃马上要放暑假了,家里的老母亲早早的就规划好了姐姐弟弟的暑期少年宫课程,奈何有些想上个课程一直没有”抢“到课程。平时带娃在少年宫上课的父母可能懂的,一般少年宫的课程都是提前预报名,然后会为了公平起见进行摇号,中者缴费。本来是一件比较合理的处理方式,但奈何不住各位鸡娃的父母们的上有政策下有对策的路子。

起因

事件的起因是,最近家里的俩娃马上要放暑假了,家里的老母亲早早的就规划好了姐姐弟弟的暑期少年宫课程,奈何有些想上个课程一直没有”抢“到课程。平时带娃在少年宫上课的父母可能懂的,一般少年宫的课程都是提前预报名,然后会为了公平起见进行摇号,中者缴费。本来是一件比较合理的处理方式,但奈何不住各位鸡娃的父母们的上有政策下有对策的路子。

第一阶段:靠数量提高命中率 ,大家都各自报了很多不同课程,防止因为摇号没摇上,导致落空。我们家也是一样操作~~~。但是这里也会出现另一种状况,当摇号结束,大家缴费期间,有的摇中家长,发现课程多了或者有些课程和课外兴趣班冲突,或者种种其他原因,不想再上暑期课程了,就会取消这门课程。 即时你缴费了,后面也是可以取消的,只是会扣除一些费用。

第二阶段:捡漏,有报多的家长,就有没有抢到合适课程的家长。没错,说的正是我们家 哈哈。在我老婆规划中,我们还有几门课程没有摇中,那这个时候怎么办呢?只能蹲守,人工不定时的登录查课,寄期望于有些家长退课了,我们好第一时间补上去。

当当当,作为一个程序员老父亲,这个时候终于排上用场了~~~,花了一个晚上,写了个定时查询脚本+通知,当有课放出,咱们就通知一下领导(老婆大人)定夺,话说这个小查课定时任务深受领导的高度表扬。

好了起因就是这样,下面我们回到正题,给大家实操下如何使用阿里云的Serverless 函数,来构建这个小定时脚本。

架构

很简单的架构图,只用到了这么几个组件,

  • Serverless FC 无服务器函数,承载逻辑主体
  • OSS 存储中间结果数据
  • RAM是对计算函数赋予角色使其有对应权限。
  • 企业微信机器人,企业微信本身可以随便注册,拉个企业微信群,加入一个群机器人,就可以作为消息触达端。

实践

函数计算FC

本次实操中,我们需要先了解阿里云的函数计算FC几个概念,方便我们后面操作理解:

相关官方资料:基本概念  
下面我只列了本次操作涉及到的概念,更详细资料,建议参考官方文档。

  • 服务:服务是函数计算资源管理的单位,是符合微服务理念的概念。从业务场景出发,一个应用可以拆分为多个服务。从资源使用维度出发,一个服务可以由多个函数组成。
  • FC函数:函数计算的资源调度与运行是以函数为单位。FC函数由函数代码和函数配置构成。FC函数 必须从属于服务,同一个服务下的所有函数共享一些相同的设置,例如服务授权、日志配置。函数的相关操作
  • 层:层可以为您提供自定义的公共依赖库、运行时环境及函数扩展等发布与部署能力。您可以将函数依赖的公共库提炼到层,以减少部署、更新时的代码包体积,也可以将自定义的运行时,以层部署在多个函数间共享。
  • 触发器:触发器是触发函数执行的方式。在事件驱动的计算模型中,事件源是事件的生产者,函数是事件的处理者,而触发器提供了一种集中、统一的方式来管理不同的事件源

创建函数

  1. 函数计算FC--> 任务--> 选择创建函数

  1. 配置函数

这里我截了个长屏,来给大家逐个解释

tips: 如果大家也有截长屏需求,推荐chrome 中的插件:Take Webpage Screenshots Entirely - FireShot

  • 函数方式:我的小脚本是python 代码,我直接使用自定义运行环境,如果你想了解这三种方式区别,建议详细阅读这篇文章:函数计算支持的多语言运行时信息
  • 服务名称:我们如果初次创建,选择创建一个服务,然后填入自己设定的服务名字即可
  • 函数代码:这里我选择运行时python 3.9 , 示例代码(代码等我们创建完成之后,再填充自己的代码逻辑)
  • 高级配置: 这里如果是初学者,个人建议尽量选最小配置,因为函数计算是按你使用的资源*次数 收费的, 这里我改成了资源粒度,0.05vCpu 128MB,并发度 1
  • 函数变量:我暂时不需要,就没有设置,如果你需要外部配置一些账号密码,可以使用这种方式来配置
  • 触发器:这里展示出了函数计算的协同作用,可以通过多种云服务产品来进行事件通知触发,我们这里的样例只需要一个定时轮询调度,所以这里我使用了定时触发器,5分钟调用一次。

配置依赖

函数整体创建成功之后,点击函数名称,进入函数详情页

函数代码模块填充本地已经调试好的代码, 测试函数,发现相关依赖并没有,这里我们需要编辑层,来将python相关依赖文件引入, 点击上图中编辑层

我选择的是在线构建依赖层,按照requirements.txt的格式书写,然后就可以在线安装了,很方便。创建成功之后,回到编辑层位置,选择刚开始创建的层,点击确定,既可,这样就不会再报相关依赖缺失了。

配置OSS映射

我的小脚本里,需要存储中间数据,因为函数计算FC本身是无状态的,所以需要借助外部存储,很自然的就会想到用OSS来存储。但是如何正确的使用OSS桶来存储中间数据呢?

官方关于python操作OSS的教程:python 操作 OSS

# -*- coding: utf-8 -*-

import oss2

# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。

auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')

# Endpoint以杭州为例,其它Region请按实际情况填写。

bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

这里操作基本都会使用到 AK,SK。 但是基于云上的安全的实践操作以及要定期更换ak,sk来保证安全,尽量不要直接在代码中使用ak, sk来调用api 。那是否有其他更合理的操作方式?

我找到了这篇文章 配置OSS文件系统

函数计算支持与OSS无缝集成。您可以为函数计算的服务配置OSS挂载,配置成功后,该服务下的函数可以像使用本地文件系统一样使用OSS存储服务。

个人推荐这种解决方案

  • 只需要配置对应函数所授权的角色策略中,加上对相应的挂载OSS桶的读写权限
  • 这个操作符合最小粒度的赋予权限,同时也减少代码开发量,python可以像操作本地磁盘一样,操作oss,简直不要太方便~~~
  • 同时也不需要担心所谓的ak sk泄漏风险以及需要定期更换密钥的麻烦,因为就不存在使用ak sk

我最后也是用这种方式,配置了oss文件系统映射到函数运行时的环境磁盘上。

企业微信机器人

企业微信可以直接注册,不需要任何费用,之后两个人拉一个群,添加一个群机器人即可。

可以参考官方文档:如何使用群机器人  来用python 发送群消息,很简单的一段代码既可完成发送消息通知。

wx_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx-xxxxx-xxxxx"

def sendWechatBotMsg(msg,collagues):

   """艾特指定同事,并发送指定信息"""

   data = json.dumps({"msgtype": "text", "text": {"content": msg, "mentioned_list":collagues}})

   r = requests.post(wx_url, data, auth=('Content-Type', 'application/json'))

最后效果如图所示:

总结

通过日常生活中的一个小场景,实践了下阿里云的高大上的Serverless FC 服务。个人选择这种无服务器函数计算,也是结合了成本的因素。

给大家对比下两种方案价格:

  • 传统云主机方式:

阿里云官方ECS主机的定价:实例价格信息

最便宜的一档: 1vCPU 1GB 实例, 每个月也要34.2 RMB  还没有包括挂载的磁盘价格 ,以及公网带宽费用

  • Serverless FC

而使用无服务器函数计算服务, 按使用时长和资源计费,像我这种最小资源粒度就可以满足同时调度次数是周期性的,大大消减了费用, 我跑了大概一周的时间 大概花费了 0.16 RMB,哈哈 简直是不能再便宜了。大家感兴趣的也可以动手实践下自己的需求场景。

云计算已经是当下技术人员的必学的一门课程,如果有时间也鼓励大家可以多了解学习,提升自己的专业能力。感兴趣的朋友,如果有任何问题,需要沟通交流也可以添加我的个人微信 coder_wukong,备注:云计算,或者关注我的公众号 WuKongCoder 日常也会不定期写一些文章和思考。

如果觉得文章不错,欢迎大家点赞,留言,转发,收藏 谢谢大家,我们下篇文章再会~~~


参考资料

中国唯一入选 Forrester 领导者象限,阿里云 Serverless 产品能力全球第一

函数计算支持的多语言运行时信息

阿里云OSS文档:python 操作 OSS

阿里云函数计算文档:配置OSS文件系统

企业微信文档:如何使用群机器人

让 Serverless 更普惠

Serverless 在阿里云函数计算中的实践

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
148 13
|
2月前
|
存储 人工智能 运维
正式收官!阿里云函数计算携手优酷,用 AI 重塑影视 IP 创新边界
近日,阿里云联合优酷发起的 Create@影视 IP x AI 应用创新大赛,将网剧《少年白马醉春风》这一热门影视 IP 与阿里云 AI 技术相结合,由阿里云函数计算提供 AIGC 技术支持参赛者基于网剧《少年白马醉春风》IP 或“少年江湖”精神内核,用 AI 生成角色场景设计、手办设计、破次元合照、数字人等多样化的作品。
119 10
|
3月前
|
消息中间件 运维 Serverless
函数计算产品使用问题之如何部署Stable Diffusion Serverless API
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
22天前
|
机器学习/深度学习 监控 Serverless
无服务器架构(Serverless)
无服务器架构(Serverless)
|
28天前
|
人工智能 弹性计算 运维
触手可及:阿里云函数计算助力AI大模型的评测
阿里云推出的面向AI服务器的功能计算(Functional Computing, FC),专为AI应用提供弹性计算资源。该服务支持无服务器部署、自动资源管理和多语言支持,极大简化了AI应用的开发和维护。本文全面评测了FC for AI Server的功能特性、使用体验和成本效益,展示了其在高效部署、成本控制和安全性方面的优势,并通过具体应用案例和改进建议,展望了其未来发展方向。
120 4
|
2月前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
143 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
2月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
383 16
|
2月前
|
人工智能 运维 大数据
阿里云“触手可及,函数计算玩转 AI 大模型”解决方案评测报告
阿里云“触手可及,函数计算玩转 AI 大模型”解决方案评测报告
92 2
|
3月前
|
前端开发 小程序 Serverless
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
|
3月前
|
存储 运维 安全
函数计算产品使用问题之如何获取到访问其他阿里云服务所需的AccessKey、SecretKey或STS Token
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。