函数计算
前言:这次写的代码需要放到这上面来跑,所以这边学习下函数计算这个产品的使用
参考文章:https://help.aliyun.com/product/50980.html
参考文章:https://help.aliyun.com/document_detail/54095.html
函数计算
函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。
函数计算是Serverless架构的一种形态,面向函数编程,基于事件驱动提供阿里云云服务之间端到端的解决方案。借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。
个人理解其实有点类似gitlab中提供的持续集成/持续部署的机制一样,也是直接提供相关依赖环境让你进行测试,节省大量的时间。
函数计算的工作流程
函数计算的工作流程如下图所示
产品架构
函数计算主要包含服务、函数、实例、运行环境、触发器、层、应用中心等功能组件,具体产品组件架构图如下图所示。
-
服务:服务是函数计算资源管理的单位,是符合微服务理念的概念。从业务场景出发,一个应用可以拆分为多个服务。从资源使用维度出发,一个服务可以由多个函数组成。
-
FC函数:函数计算的资源调度与运行是以函数为单位。FC函数由函数代码和函数配置构成。FC函数(函数计算)必须从属于服务。
-
实例:函数计算提供的实例类型包含弹性实例和GPU实例。
- 触发器:触发器是触发函数执行的方式。在事件驱动的计算模型中,事件源是事件的生产者,函数是事件的处理者,而触发器提供了一种集中、统一的方式来管理不同的事件源。在事件源中,当事件发生时,如果满足触发器定义的规则,事件源会自动调用触发器所对应的函数。
知识点:创建函数前必须先创建服务,同一个服务下的所有函数共享一些相同的设置,例如服务授权、日志配置。服务的相关操作
创建函数计算对应的rocketmq触发器
参考文章:https://help.aliyun.com/document_detail/53102.htm
上面提到了在事件驱动的计算模型中,事件源是事件的生产者,函数是事件的处理者,而触发器提供了一种集中、统一的方式来管理不同的事件源,那么简单的讲这个触发器是如何进行工作的呢?或者说这个触发器是如何被触发的?又是被谁触发呢?
这里拿一个例子来进行讲解,比如对象存储OSS中的图片状态变更触发函数执行,如下所示
某应用使用对象存储OSS存放上传的图片,您可以通过直接调用函数的方式去下载图片进行处理,并将结果存入对象存储OSS或者其他服务。如果对象存储OSS能够帮助我们关注新上传的图片,并且自动去调用关联的函数,您无需再调用函数,从而简化了开发和使用流程。
那么这里能够帮我们关注新上传的图片从而执行一些自定义操作的实现,这些实现就是OSS触发器的作用。也就是关注这些事件并调用函数计算的函数。配置了OSS触发器后,当有新图片上传,OSS触发器会自动触发函数下载并处理图片。
接着继续看,这里说了不同触发器,其触发的事件传递到函数接口的Event格式不同。
这边的话主要是学习消息队列RocketMQ版触发器
参考文章:https://help.aliyun.com/document_detail/194655.html
这边创建一个函数计算,根据文档所示我们这边可以有两种请求测试方式,分别是事件模式和事件流模式。
事件模式:每次会将单个消息作为事件参数传入函数中,事件遵循CloudEvents规范。消息内容和CloudEvents的关系。
事件流模式:根据您的攒批配置,将一个或多个消息事件以批的形式推送到函数中进行处理,适合端到端的流式数据处理场景。
创建这边rocketmq的Event格式如下图所示,默认如下如下图所示。
然后在rocketmq创建一个对应的topic主题
然后再创建一个对应的group,topic主题只能存在于一个group下面
我这边创建的topic为hello_topic,可以看到topic主题只能存在于一个group下面
最后来到函数计算中创建对应的rocketmq触发器,如下图所示
测试函数计算对应的rocketmq触发器
这边打开rocketmq实例写入测试数据即可,如下图所示,这边标记为hello_tag,因为我在创建触发器中的时候标注的就是hello_tag,上面图可以看到
点击运行之后,这边可以来到函数计算中的日志窗口,如下图所示可以看到成功的rockqetmq触发器成功生效,如下图所示
如何进行自定义传参
最后会将这些属性作为userProperties来进行输出显示,如下图所示
pip3环境依赖
如果需要环境依赖的话则可以自己添加自定义层来进行添加对应的依赖
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2021-06-26 关于单向认证与双向认证