前言
Serverless 作为一种新兴的应用开发架构,已经被广泛应用于云端应用开发及部署领域。其核心理念是将应用的业务逻辑与底层基础设施分离,通过云端服务提供商的平台服务来管理、扩展应用的运行环境。
本文将介绍如何使用 Serverless 框架部署 Express.js 应用程序。
准备工作
安装 Node.js 和 Serverless CLI
在运行 Serverless 步骤之前,你需要在你的机器上安装 Node.js 和 Serverless CLI。
Node.js 可以从官方网站 https://nodejs.org/en/ 上下载。
安装完毕后,你需要使用 npm 安装 Serverless CLI,命令如下:
npm install -g serverless
安装完成后,你可以使用以下命令来检查你的 Serverless CLI 版本:
serverless --version
配置 AWS 服务
本文将使用 AWS Lambda 和 API Gateway 服务来实现 Serverless 应用程序。
创建 IAM 用户并获取 Access Key 和 Secret Key
访问 AWS IAM 控制台,创建一个新的 IAM 用户并分配相应的权限,以便 Serverless CLI 可以使用该用户身份创建 Lambda 函数和 API Gateway。
在创建 IAM 用户时,请务必记录 Access Key 和 Secret Key,这些凭证将用于访问 AWS 服务。
配置 Serverless CLI
在配置 Serverless CLI 之前,你需要安装并配置 AWS CLI 工具。
安装完成后,请在终端中使用以下命令配置 AWS CLI:
aws configure
输入 Access Key 和 Secret Key,以及所在的地区和默认输出格式。
接下来,在终端中输入以下命令配置 Serverless CLI:
serverless config credentials --provider aws --key <YOUR_ACCESS_KEY> --secret <YOUR_SECRET_KEY>
创建 Express.js 应用程序
首先,我们需要创建一个 Express.js 应用程序。
在终端中执行以下命令:
mkdir serverless-express-demo cd serverless-express-demo npm init -y
然后,通过以下命令安装 Express.js 和 Serverless HTTP 插件:
npm install express serverless-http
在你的应用程序中创建 index.js
文件,并编写以下代码:
// javascriptcn.com 代码示例 const express = require('express') const serverless = require('serverless-http') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) module.exports.handler = serverless(app)
该应用程序只包含一个路由,它会在访问根路径时返回“Hello World!”。
运行以下命令启动应用程序:
node index.js
然后在浏览器中访问 http://localhost:3000,你应该能够看到“Hello World!”的响应。
使用 Serverless 部署 Express.js 应用程序
现在我们已经有了一个可用的 Express.js 应用程序,我们将使用 Serverless CLI 部署它。
初始化项目
在终端中通过以下命令初始化 Serverless 项目:
serverless create --template aws-nodejs --path serverless-express-demo cd serverless-express-demo
配置 serverless.yml 文件
编辑 serverless.yml
文件,添加以下内容:
// javascriptcn.com 代码示例 service: serverless-express-demo provider: name: aws runtime: nodejs12.x stage: dev region: us-west-2 functions: app: handler: index.handler events: - http: path: / method: ANY
其中 service
为项目名称, provider
是提供者配置, functions
用于定义函数及其事件触发器。
部署应用程序
最后,运行以下命令将应用程序部署到 AWS Lambda:
serverless deploy
在部署完成后,你应该能够看到类似下面的输出:
// javascriptcn.com 代码示例 Service Information service: serverless-express-demo stage: dev region: us-west-2 stack: serverless-express-demo-dev resources: 8 api keys: None endpoints: ANY - https://xxxxxx.execute-api.us-west-2.amazonaws.com/dev/ functions: app: serverless-express-demo-dev-app layers: None
其中 endpoints
表示你的应用程序的 API Gateway 的 URL 地址。
在浏览器中访问该地址,你应该能够看到“Hello World!”的响应。
总结
本文介绍了使用 Serverless 框架部署 Express.js 应用程序的方法,并提供了示例代码。
通过使用 Serverless,你可以轻松地将 Express.js 应用程序部署到云端,并实现自动化的部署和运维,为开发者提供了更多的选择和便利。希望这篇文章可以对你的学习和工作有一定的帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652be9a17d4982a6ebdc5e09