开发者社区 问答 正文

函数计算的基本概念


基本概念

  • 服务(Service):服务是资源管理的基本单位。您可以在服务上执行授权、配置日志、创建函数等操作。服务下的所有函数都共享这些设置。一个服务下能创建的函数是有限制的,请参阅函数计算限制项
  • 函数(Function):函数是用户编写的,由事件触发,执行特定功能的一段代码。函数是调度和运行的基本单位。
  • 事件(Event):任何能够触发函数执行的事情称之为事件。例如,一个调用函数的http请求,可以看做一个事件。上传对象到特定的OSS bucket并触发函数调用,也是一个事件
  • 触发器(Trigger):用户通过触发器定义和管理事件的生成方式。例如,当您创建一个OSS PutObject触发器后,当put object到指定的OSS位置时,就会产生一个事件,触发对应的函数

当您在使用函数计算开发应用时,可以先将所有的函数放在单一的服务内。但随着您的应用功能和复杂度的增长,您应当考虑使用微服务的模式,将应用拆分为多个服务。各个服务采取独立的节奏开发、测试和部署。例如,将一个博客应用拆分为多个函数计算的服务:
  1. [backcolor=transparent]User[backcolor=transparent] service[backcolor=transparent]:管理[backcolor=transparent]user[backcolor=transparent]资源,提供[backcolor=transparent]CRUD[backcolor=transparent]操作,访问[backcolor=transparent]user[backcolor=transparent]数据库
  2. [backcolor=transparent]Post[backcolor=transparent] service[backcolor=transparent]:管理[backcolor=transparent]post[backcolor=transparent]资源,提供[backcolor=transparent]CRUD[backcolor=transparent]操作,访问[backcolor=transparent]post[backcolor=transparent]数据库
  3. [backcolor=transparent]Comment[backcolor=transparent] service[backcolor=transparent]:管理[backcolor=transparent]comment[backcolor=transparent]资源,提供[backcolor=transparent]CRUD[backcolor=transparent]操作,访问[backcolor=transparent]comment[backcolor=transparent]数据库

展开
收起
boxti 2017-10-19 15:53:48 1780 分享
分享
版权
举报
阿里云 AI 助理回答

基于您提供的信息,阿里云函数计算(Function Compute)是一种事件驱动的全托管计算服务,它允许您无需管理服务器即可运行代码。下面是对您描述内容的进一步解析和建议:

服务(Service)

  • 作用:服务是函数计算中资源管理和组织的基本单元。每个服务可以包含多个函数,并且这些函数共享服务级别的配置,如访问权限控制、日志配置等。
  • 策略:在应用初期,将所有函数放在一个服务内便于快速开发和部署。但随着应用规模扩大,按照微服务架构的原则拆分服务变得尤为重要,这有助于提高系统的可维护性、可扩展性和部署灵活性。

函数(Function)

  • 定义:函数是执行特定任务的代码片段,由外部事件触发。例如处理HTTP请求、处理数据库操作或响应云存储中的文件变化。
  • 实践:在博客应用的例子中,每个功能模块(用户管理、文章管理、评论管理)都可能对应一个或多个函数,分别实现创建、读取、更新和删除(CRUD)操作。

事件(Event)与触发器(Trigger)

  • 事件:任何能够启动函数执行的条件或动作,比如HTTP请求、定时任务、对象存储(OSS)文件上传等。
  • 触发器:配置如何生成和传递这些事件到函数的规则。例如,为某个OSS bucket设置触发器,当有新文件上传时自动调用指定的函数进行处理。

微服务模式的应用

  • User Service:专注于处理与用户相关的业务逻辑,如用户注册、登录、资料修改等,直接与用户数据库交互。
  • Post Service:负责文章的创建、查询、编辑和删除,与文章数据库交互,确保文章数据的一致性和安全性。
  • Comment Service:管理评论,包括添加评论、回复、删除等操作,与评论数据库相连。

实施建议

  1. 按业务领域划分服务:根据不同的业务功能来设计服务,这样可以清晰地界定职责范围,便于团队协作和独立迭代。
  2. 采用API Gateway:对于需要对外暴露接口的功能,可以通过阿里云API Gateway来管理API,提供安全、高性能的访问入口。
  3. 利用DynamoDB或RDS等数据库服务:根据数据模型选择合适的数据库服务,确保数据访问的高效和可靠。
  4. 实施持续集成/持续部署(CI/CD):结合阿里云CodePipeline和CodeBuild等工具,自动化测试和部署流程,加速软件交付速度。
  5. 监控与日志:利用阿里云日志服务SLS监控函数执行情况,收集日志以便于问题排查和性能优化。

通过上述方式,您可以充分利用阿里云函数计算及其生态内的其他服务,构建出高可用、易扩展的现代应用架构。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等