Coursera 笔记

Module 03 · Serverless Overview

The Serverless FrameworkServerless 框架简介

Coursera ↗

Serverless Framework 概述

The Serverless Framework 是一个使用 Node.js 编写的免费开源 Web 框架。

  • 初始目的: 最初设计用于安全快速地配置 Amazon Web Services (AWS) 的 Lambda Functions、Events(事件)和基础设施资源。
  • 支持范围: 但它并不限于 AWS,其他支持的提供商包括:
    • Microsoft Azure
    • Google Cloud Platform
    • Apache OpenWhisk
  • 特性: Serverless Framework 是一个命令行界面 (CLI) 工具,提供了结构、自动化和开箱即用的最佳实践。

核心组件

Serverless Framework 允许您专注于构建复杂的事件驱动、无服务器架构,该架构由以下几个核心组件组成 :

  1. 函数(Function):
  • 仅仅是代码,部署在云端,通常用于执行单个任务。
  • 每个函数都是一个独立的执行和部署单元,类似于微服务。
  • 示例: 将用户保存到数据库,或在指定时间执行一个作业。
  1. 事件(Event):
  • 函数由事件触发,事件来自其他资源。
  • 示例: API Gateway URL 上的 HTTP 请求,或 S3 存储桶中上传了新文件。
  1. 资源(Resource):
  • 您的函数使用的基础设施组件。
  • 示例: 云提供商作为服务提供的数据库,或用于存储文件的 S3 存储桶。
  1. 服务(Service):
  • 该框架的组织单位。
  • 您可以将其视为一个项目文件,尽管一个应用程序可以有多个服务。

Serverless.yml 配置与部署

服务通过 serverless.yml 文件进行配置,您在该文件中定义要部署的函数、事件和资源。

  • 控制: serverless.yml 文件控制您的服务中的所有内容。
  • 部署: 使用 Framework CLI 进行部署时,配置文件中的所有内容会一次性部署。
  • 结构: serverless.yml 中有专门的段落用于指定 functions、events 和 resources。

示例:创建和测试 Serverless 函数

  1. 安装 CLI: 首先,您需要安装 Serverless CLI(可以使用 npm install -g serverless 全局安装)。
  2. 创建服务: 运行 serverless 命令来创建您的第一个 AWS HTTP API(例如使用 Python)。
  • 该命令将引导您完成向导。
  1. 部署与 URL: 部署完成后,CLI 将提供一个 URL。
  2. 测试: 在浏览器中打开该 URL,您将看到输出。
  3. 修改与重部署: 修改函数代码以返回 "Hello World",然后简单地重新部署并再次测试。

总结

  • The Serverless Framework 是一个使用 Node.js 编写的免费开源 Web 框架。
  • 函数由事件触发。
  • 服务通过 serverless.yml 文件进行配置。
  • serverless.yml 文件中有用于指定 functions、events 和 resources 的特定部分。