
- Serverless 教程
- Serverless - 首页
- Serverless - 简介
- Serverless - 安装
- Serverless - 部署函数
- Serverless - 区域、内存大小、超时时间
- Serverless - 服务
- Serverless - 定时 Lambda 函数
- Serverless - API 网关触发的 Lambda 函数
- Serverless - 包含/排除
- Serverless - 插件
- Serverless - 打包依赖项
- Serverless - 层创建
- Serverless - 使用 DynamoDB 的 REST API
- Serverless - Telegram 回声机器人
- Serverless 有用资源
- Serverless - 快速指南
- Serverless - 有用资源
- Serverless - 讨论
Serverless - 简介
什么是 Serverless?
嗯,名字本身就给了你不少提示。无需担心服务器维护的计算 - 这就是 Serverless 计算(或简称 Serverless)的核心。这个概念非常具有革命性和颠覆性。它已被广泛采用。许多新的应用程序从设计 Serverless 后端开始,而拥有专用服务器的传统应用程序也正在缓慢迁移到 Serverless 架构。那么是什么导致了 Serverless 的广泛采用呢?就像所有事物一样,经济因素使得 Serverless 变得非常有利。
你看,使用 Serverless,你只需为使用的部分付费。假设你每天需要对数据库进行一些例行维护。这个过程每天可能需要大约 10 分钟。
现在,在没有 Serverless 计算的情况下,你的维护 cron 作业可能驻留在服务器上。除非你在剩余时间里还有其他事情要使用你的服务器,否则你最终可能需要为 24 小时付费,而这项任务只需要 10 分钟。真是浪费钱,对吧?如果有人告诉你有一种新的服务,它只会为你执行维护 cron 作业的这 10 分钟收费呢?你难道不想简单地切换到这项新服务吗?这正是 Serverless 采用如此迅速和广泛的原因。它降低了许多组织的后端账单,并减少了他们的服务器维护负担。
云服务提供商(AWS、Azure 等)承担了确保 Serverless 应用程序在需要时恰好可用,并在所需的数量下可用的责任。因此,在高负载期间,你可能需要调用多个 Serverless 应用程序,而在正常负载期间,你可能只需要调用一个应用程序。当然,你只会为高负载持续时间内的额外调用付费。
什么是 Serverless?再次强调一下。
上面解释的概念似乎很棒,但你如何实现它呢?你需要一个框架来实现它。它被称为,嗯,serverless。
Serverless 框架帮助我们开发和部署旨在以 Serverless 方式运行的函数/应用程序。该框架更进一步,负责部署 Serverless 函数运行所需的整个堆栈。什么是堆栈?嗯,堆栈包含你部署、存储和监控 Serverless 应用程序所需的所有资源。
它包括实际的函数/应用程序、存储容器、监控解决方案等等。例如,在 AWS 的上下文中,你的堆栈将包含你的实际 Lambda 函数、用于函数文件的 S3 存储桶、与你的函数关联的 Cloudwatch 资源等等。Serverless 框架为我们创建了整个堆栈。这使我们能够完全专注于我们的函数。Serverless 消除了维护服务器的负担,而 Serverless(框架)消除了创建和部署运行我们的函数所需的堆栈的负担。
Serverless 框架还负责为我们的函数/应用程序分配必要的权限。某些应用程序(我们将在本教程中看到示例)甚至需要将数据库链接到它们。Serverless 框架再次负责创建和链接数据库。Serverless 如何知道要将哪些内容包含在堆栈中以及要提供哪些权限?所有这些都在 serverless.yml 文件中提到,这将是我们本教程的主要关注点。在接下来的章节中将对此进行更多介绍。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
AWS 中的 Serverless
AWS 的许多服务都属于“Serverless 计算”的范畴。你可以在这里找到整个组织列表 here。有计算服务、集成服务,甚至数据存储服务(是的,AWS 甚至有 Serverless 数据库)。在本教程中,我们将重点介绍 AWS Lambda 函数。那么什么是 AWS Lambda?AWS Lambda 网站将其定义如下:
AWS Lambda 是一种 Serverless 计算服务,允许你运行代码而无需预置或管理服务器、创建工作负载感知集群扩展逻辑、维护事件集成或管理运行时。
用通俗易懂的话来说,AWS Lambda 是你访问 AWS 上 Serverless 计算的窗口。正是 AWS Lambda 使 Serverless 概念如此受欢迎。你只需要定义你的函数以及触发你的函数的触发器,该函数将在你希望它被调用的时间点被调用,并且你只需为函数执行所需的时间付费。更重要的是,你可以将 AWS Lambda 与 AWS 提供的几乎所有其他服务链接起来 - EC2、S3、dynamoDB 等等。
因此,如果你已经是 AWS 生态系统的一部分,那么 Lambda 集成非常无缝。如果你像我第一次了解 AWS Lambda 时一样,是 AWS 生态系统的新手,它将作为通往 AWS 宇宙的一个良好入口。
在本教程中,我们将学习如何使用 Serverless 框架部署 AWS Lambda 函数。你兴奋吗?然后继续下一章开始吧。