13 开始使用 Serverless 架构之创建第一个 Serverless 函数

在上一篇中,我们讨论了如何设置开发环境以便于使用 Serverless 架构。在本篇中,我们将学习如何创建我们的第一个 Serverless 函数。这个过程将涉及到使用 Serverless Framework,它是一个广泛使用的工具,可以帮助我们简化 Serverless 应用程序的构建、部署和管理。

创建你的第一个 Serverless 函数

第一步:初始化 Serverless 项目

首先,确保你的开发环境已正确设置,包含了 Node.jsServerless Framework。如果你还没有安装 Serverless Framework,可以通过以下命令进行安装:

1
npm install -g serverless

接下来,使用以下命令创建一个新的 Serverless 项目:

1
serverless create --template aws-nodejs --path my-service

这里我们使用 aws-nodejs 模板,意思是我们将要创建一个基于 AWS Lambda 的 Node.js 服务,my-service 是项目的文件夹名称。

第二步:理解结构

进入到项目目录中:

1
cd my-service

你会发现项目中生成了一些文件,其中最重要的文件是 serverless.yml。这个文件是配置文件,定义了你的 Serverless 服务的基本信息,包括:

  • 服务名称
  • 使用的云提供商
  • 函数的定义
  • 事件触发器等

第三步:编写你的函数

my-service 文件夹中找到 handler.js 文件。这个文件是我们编写 Lambda 函数的地方。默认情况下,会有一个 hello 函数在这里。我们可以稍微修改这个函数,让它返回一些自定义的信息。

handler.js 内容替换为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'use strict';

module.exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify(
{
message: 'Hello, Serverless World!',
input: event,
},
null,
2
),
};
};

在这个函数中,我们定义了 hello 函数,每当这个函数被调用时,将返回一个 HTTP 状态码 200 和一条消息。

第四步:配置函数和事件

接下来,我们需要在 serverless.yml 文件中配置我们的函数,使其能够通过 HTTP 请求触发。打开 serverless.yml 文件并找到 functions 部分,修改为如下内容:

1
2
3
4
5
6
7
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get

在这里,我们定义了函数的处理程序(handler: handler.hello),并设置了一个 HTTP 事件,当我们通过 GET 请求访问 /hello 路径时,将会触发这个函数。

第五步:测试本地函数

在我们部署函数之前,可以先在本地测试这个函数。使用以下命令可以在本地模拟 Lambda 函数的执行:

1
serverless invoke local --function hello

你应该会看到类似如下的输出:

1
2
3
4
{
"message": "Hello, Serverless World!",
"input": {}
}

这表示我们的函数已成功被执行,并返回了预期的响应。

第六步:准备部署

在部署之前,我们可以通过以下命令检查配置是否正确:

1
serverless print

这个命令将显示当前的服务配置,帮助我们确认一切都正常。

总结

到这里,我们已经成功创建了一个简单的 Serverless 函数,并配置了通过 HTTP 触发它的事件。你可以尝试在本地测试此函数,确保它工作正常。接下来,我们将进入部署与管理的部分,在下一篇文章中将详细讲解如何将我们的 Serverless 函数部署到 AWS 云上并进行管理。

如需更深入了解,请查看官方文档:Serverless Framework Documentation

13 开始使用 Serverless 架构之创建第一个 Serverless 函数

https://zglg.work/serverless-architecture-zero/13/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论