AWS Serverless Express Edge 是一个npm包,可以将AWS Lambda函数与CloudFront CDN相结合,可以实现高效的边缘缓存和动态路由,适用于构建需要高性能和低延迟的Web应用程序。本文将介绍如何使用aws-serverless-express-edge。
环境准备
- AWS账户
- Node.js
- Serverless Framework
安装
npm install aws-serverless-express-edge
使用
后端配置
构建lambda.js文件:
const awsServerlessExpress = require('aws-serverless-express'); const app = require('./app'); exports.handler = (event, context, callback) => { const server = awsServerlessExpress.createServer(app); awsServerlessExpress.proxy(server, event, context); };
在app.js中配置Express.js应用程序。
CloudFront配置
假设已在AWS控制台上创建了CloudFront分配,可以按照下面的步骤在控制台上配置CloudFront:
- 选择刚才创建的分配并点击“编辑”
- 在“默认缓存行为”面板中选择“使用Lambda@Edge与CloudFront”选项卡,然后单击“创建函数”
- 选择“nodejs14.x”运行时并提供上面创建的lambda.js的代码。此示例的入口点是“handler”。不要忘记将角色名称更改为具有允许启动Lambda函数的权限的现有AWS角色。
- 完成后,选择已创建的Lambda函数,然后选择“关联”以完成配置。
静态资源配置
要在CloudFront中使用静态资源,请创建S3存储桶并在其中放置文件。请确保存储桶配置为允许CloudFront读取存储桶中的对象,然后使用CloudFront的“行为”设置将其关联到默认缓存行为中。
测试
在浏览器中输入分配的CloudFront网址,并查看示例应用程序。
示例代码
const express = require('express'); const app = express(); app.get('/hello', function (req, res) { res.send('Hello World!'); }); module.exports = app;
const awsServerlessExpress = require('aws-serverless-express'); const app = require('./app'); exports.handler = (event, context, callback) => { const server = awsServerlessExpress.createServer(app); awsServerlessExpress.proxy(server, event, context); };
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005726281e8991b448e8915