简单地说,我们现在是Redis

了解更多

使用AWS Lambda和Redis企业云进行无服务器开发万博体育彩

了解如何使用Redis Enterpri万博体育彩se Cloud、RedSearch和AWS Lambda创建云本机微服务应用程序。



回到博客

在这篇博文中,您将学习如何集成AWS Lambda万博体育彩复述,企业云。使用示例电影数据库应用程序,您将了解如何构建和部署两个Lambda函数,一个在Node.js,五分之一python。这两个Lambda函数用于与Redis数据库交互以插入、更新、删除和查询。应用程序使用再研究提供丰富查询和搜索功能的API。无服务器,使用AWS Lambda,符合微服务体系结构的发展趋势,因为它允许开发人员缩小业务“服务”的范围进入一个可以使用他们选择的编程语言实现的小项目。要了解更多信息,请观看下面的视频并继续阅读,以ag万博下载万博最新版本下载苹果快速了解AWS Lambda,并深入了解如何使用Redis Enterprise Cloud和Lambda构建应用程序:万博体育彩

快速查看AWS Lambda

如果您还不熟悉AWS Lambda公司的无服务器计算运行时,也称为“功能即服务”((美国联邦航空管理局)-以下是您需要了解的基本知识。(Lambda专家可以跳到下一节。)AWS Lambda允许应用程序根据需要运行函数以响应特定事件,这是构建事件驱动体系结构(EDA)应用程序的好方法。AWS Lambda函数完全由AWS管理,可以使用各种程序设计语言。也许AWS Lambda最好的部分是,开发人员通常不需要完全了解应用程序生命周期就可以使用ag万博下载万博最新版本下载苹果它。

可以使用几种不同的方法调用AWS Lambda:直接从AWS控制台调用,使用来自其他AWS服务的事件,例如社交网站SQS,或运动,甚至从AWS控制台,CloudWatch,或S3在我们的示例电影数据库应用程序中,Lambda函数将使用HTTP REST端点调用,这是使用AWS API网关(您可以找到更多关于AWS Lambda函数调用的信息在文件中.)

AWS Lambda HTTP执行过程

具体而言,通过HTTP的请求被路由到AWS的API网关管理工具,该工具解析正文、标头和参数,然后使用此有效负载触发Lambda函数:

在API网关中公开AWS Lambda函数。

作为一名开发人员,您只需编写代码来公开REST端点,并将部署配置为在AWS API网关中公开REST端点。(我们将在下一节介绍示例电影数据库应用程序时对此进行进一步讨论。)

无服务器应用程序中的状态和数据管理

AWS Lambda是一个无状态环境。但在许多应用程序中,您仍然希望在服务或调用之间共享状态,Redis可以提供帮助。对于简单的状态管理,AWS开发人员通常使用ElastiCache,但许多应用程序需要的不仅仅是状态管理,它们还需要持久性、丰富的数据、高性能和查询模型。万博最新版本下载苹果ag万博下载万博体育彩复述,企业云在AWS上提供完全管理的服务(也支持Google Cloud和Microsoft Azure)。

Redis电影数据库示例应用程序

现在,我们准备看看示例电影数据库应用程序,了解使用Redis Enterprise Cloud和AWS Lambda构建应用程序的关键步骤。万博体育彩

应用程序使用文档中记录的数据集重新搜索入门教程,其中包括一个电影目录,由Redis hash制作。如下图所示,前端是使用Vue.js,它调用REST端点以:

  • 列出、排序和筛选电影
  • 编辑电影和添加/删除评论
  • 使用全文搜索和分面搜索搜索电影
使用AWS Lambda函数的示例电影数据库应用程序的演示。

如上所述,应用程序利用AWS API网关、AWS Lambda和Redis企业云作为数据存储万博体育彩AWS密钥管理服务存储和加密Redis数据库密码。

安装并运行演示应用程序

要开始,您需要一些先决条件:

组装好所有组件后,让我们详细介绍安装和运行示例应用程序的过程。

步骤1:获取Redis企业云数据万博体育彩库信息

如果您尚未在Redis Enterprise Cloud上创建数据库,请使用我们的万博体育彩开始使用Redis模块指导

当您连接到Redis企业云时,您可以在web控制台中找到数据万博体育彩库连接信息;确保将模块“RediSearch 2”添加到数据库中。

万博体育彩我们的示例电影数据库应用程序的Redis企业云数据库信息。

将Lambda函数连接到Redis数据库需要以下属性:

  • REDIS_主机:REDIS-18541.xxx.xxxx.xxx.cloud.REDIS.com
  • REDIS_PORT: 18541
  • REDIS_密码:<屏幕上显示的密码>

步骤2:从GitHub获取项目

将存储库克隆到本地环境,并将其移动到项目目录

> git克隆https://github.com/redis-developer/aws-redis-cloud-demo.git>cd aws redis云演示

项目目录结构如下所示:

aws-redis-cloud-demo├──README。│├─前端=> Vue.js project│├─env.development => to set the Lambda URLs in dev mode│├─env. js project│├─│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.com.cn/details/detail.asp?│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.exe│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.exe│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.org│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.org│├──readme。│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.exe数据集>数据集>数据集>数据集>├──serverless。cat sound效果器整理www.catsound.org──cat sound效果器整理www.catsound.org──└──……

步骤3:将电影数据库数据集导入应用程序

该文件aws-redis-cloud-demo / movies-list-microservice / import_movies.redis包含将电影插入数据库的所有Redis命令。使用的命令包括:

  • HSET为每一个电影
  • 创建创建重新搜索索引。

要导入数据集,请打开终端并运行以下命令:

> export REDISCLI_AUTH= > redis-cli -h redis-18541.xxx.xxx .xxx.cloud.www.szfbf.com \ -p 18541 < movies-list-microservice/import_movies.redis . >

步骤4:配置应用程序以使用您的Redis企业云实例万博体育彩

在测试应用程序之前,必须使用Redis Enterprise Cloud数据库实例配置Node.js和Python服务。打开以下文件:万博体育彩

  • ./movies list microservice/serverless.yml
  • ./movie comments microservice/.chalice/config.json

然后设置Redis主机、端口和密码:(REDIS_HOST、REDIS_PORT REDIS_PASSWORD

步骤5:构建并运行电影微服务(Node.js)

按照此处列出的步骤构建和运行项目。(您还可以在项目的自述文件.)

  1. 安装serverless框架
>npm安装-g无服务器

2.转到movies-list-microservice目录

>cd电影列表微服务

3.安装依赖项

>npm安装

4.在本地运行Lambda函数

> npm开始

5.通过打开对REST服务的浏览器调用来测试服务:http://localhost:3000/api/movies/1

6.通过运行以下命令将功能部署到AWS环境,将服务部署到AWS:

>无服务器部署无服务器:堆栈更新已完成…服务信息服务:电影列表微服务阶段:api区域:us-east-1堆栈:电影列表微服务api资源:33 api键:无端点:GET-https://。执行api。。amazonaws.com/api/movies/search GET-https://。执行api、 .amazonaws.com/api/movies/group_by/{field}GET-https://。执行api。.amazonaws.com/api/movies/{id}POST-https://。执行api。.amazonaws.com/api/movies/{id}功能:listMovies:movies list microservice api listMovies searchMovies:movies list microservice api searchMovies getMovie:movies list microservice api getMovie saveMovie:movies list microservice api saveMovie layers:None

7.通过将浏览器指向https://。执行api。。amazonaws.com/api/movies/1

注意:如果收到错误,请检查函数登录AWS监测看看发生了什么。

深入了解代码:

  • package.json文件包含此Node.js项目使用的依赖项。此项目非常简单,并使用以下依赖项:
    • 雷迪斯redis重新搜索库用于连接到Redis和公开的RedSearch命令。
    • aws-lambda库用于调用所有AWS Lambda函数,以将节点应用程序部署到AWS环境中。
  • serverless.yml文件定义了将HTTP操作映射到将被调用的JavaScript函数的无服务器函数(在中定义)handler.ts),并包含环境变量(本演示中主要是Redis连接字符串)。
  • handler.tsfile是捕获来自AWS网关的事件并调用应用程序库的类搜索服务它负责对Redis数据库的所有调用。
  • SearchService.ts文件包含与Redis数据库交互并使用Redis和RedSearch API的所有方法:client.ft_search ()client.aggregate ()client.hmset(),等等。(有关Redis和RedSearch命令的详细信息,请访问雷迪斯大学GitHub上的RediSearch 2.0教程

步骤6:构建并运行注释微服务(Python)

下面是构建和运行项目的步骤。(你也可以在项目中找到所有的信息自述文件.)

  1. 转到Python项目并创建一个虚拟环境:
>cd电影评论microservice>python3-m venv酒杯环境>源酒杯环境/bin/activate

2.安装依赖项:

> PIP安装-r requirements.txt

3.设置AWS环境,运行以下命令,并配置您的ID和密码:

>aws配置aws访问密钥ID[None]:*********************BANG aws秘密访问密钥[None]:***************BANG默认区域名称[None]:us-west-2默认输出格式[None]:

4.通过运行以下命令将功能部署到您的AWS环境,将服务部署到AWS:

>chalice部署重用现有部署包。IAM角色的更新策略:电影评论微服务开发人员创建lambda函数:电影评论微服务开发人员创建Rest API资源已部署:-lambda ARN:ARN:aws:lambda:us-east-1:11111111:函数:电影评论微服务开发人员-Rest API URL:https://XXXXXXX.execute-api.us-east-1.amazonaws.com/api/

深入了解代码:

  • 文件包含此Python项目使用的依赖项。此项目非常简单,并使用以下依赖项:
    • AWS框架是否用于在Python中创建无服务器的应用程序
    • 雷迪斯再研究访问Redis并使用RedSearch API
  • json文件定义无服务器应用程序,并用于定义此应用程序中的环境变量,即Redis数据库连接信息。
  • app.py文件是使用各种路由定义所有REST端点的应用程序入口点。应用程序导入各种依赖项,特别是评论服务用于与Redis交互的。如果要使用多个文件,必须将这些文件放入圣杯文件夹
  • comment_service.py文件包含与Redis的所有交互,用于创建、查询和删除注释search ()方法。此方法用于检索使用search_client.search()调用。

或者,您可以将Redis数据库密码存储在AWS密钥管理服务。您可以在项目中找到配置步骤文档

步骤7:运行前端应用程序

  1. 转到前端目录并安装依赖项:
>cd前端>npm安装

2.编辑.env.development文件设置电影和评论服务的URL:

VUE\u应用程序\u电影\u服务=https://。执行api。。amazonaws.com/api VUE\u应用程序\u评论\u服务=https://。执行api。。amazonaws.com/api

3.运行应用程序:

> NPM运行服务

4.打开浏览器,然后转到http://localhost:8084

您现在可以在应用程序中导航,更新和搜索电影,以及添加/删除评论。

或者,您可以使用S3和云锋在AWS环境中部署Vue应用程序并将其公开提供给用户。项目中对此进行了说明文档

结论

使用AWS Lambda和Redis企业云简化了服务的部万博体育彩署。使用Redi万博体育彩s企业云与RediSearch,您可以轻松查询Redis数据使用值,允许您使用Redis作为您的服务的主要数据库。

万博体育彩Redis Enterprise Cloud与Redis兼容,允许您轻松迁移现有的Redis部署,包括OSS和托管服务。您只需更改连接参数(如数据库端点)。执行实时迁移的方法有多种,包括:

除了再研究,R万博体育彩edis Enterprise Cloud允许您使用其他有前途的数据模型,例如图表JSON时间序列布隆过滤器,并提供了在生产环境中至关重要的多种其他数据库功能,包括高可用性可伸缩性持久性安全active - active geo-distribution

想了解更多信息吗?请查看我们的AWS re:发明主页并阅读以下教程和博客帖子:

Baidu