您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

使用 AWS AppSync 创建实时控制面板

时间:2022-12-11 17:51:29  来源:今日头条  作者:科技狠活与软件技术

本文介绍了 AppSync,并列出了使用无服务器 GraphQL 开发实时仪表板的主要构建块。

 

在这个快节奏的世界中,应用程序需要实时传播信息。一些示例是跟踪货物移动、跟踪股票价格、分析正在进行的足球比赛的数据等。此外,人们使用各种设备(如台式机、移动设备和标签)来访问这些应用程序。此外,一些应用程序需要此信息和警报是可操作的,即用户可以更新一个或多个属性。例如,货物处理设施可以通过执行到达扫描来更新货物的状态。因此,从本质上讲,我们正在寻找可以从多个设备访问的交互式实时仪表板。在本文中,我将讨论如何使用 AWS AppSync 构建这种控制面板。我将采用一个常见的用例并为该用例创建一个参考解决方案架构

为不熟悉这项服务的人快速介绍 AWS AppSync。AppSync 是一种无服务器的 GraphQL 接口,具有强大的可扩展性。GraphQL 是一种数据语言,旨在使应用程序能够从服务器获取数据。它具有声明式、自文档化的风格。在 GraphQL 操作中,客户端指定在服务器返回数据时如何构建数据。这使得客户端可以只查询它需要的数据,以它需要的格式。

用例

 

让我们以互联网服务提供商为例。他们在广阔的地理区域开展业务。他们需要一个实时仪表板来显示所有活动的服务请求。一个区域的管理员可以查看整个区域。他们应该能够根据他们的位置向服务工程师分配开放工单。服务工程师将从他们的移动设备访问仪表板,并且应该能够将工单的状态更新为“进行中”、“完成” 等管理员应该能够实时查看状态更新。需要考虑的另一种情况是,现场工程师的互联网连接通常很差/没有。他们应该能够更新工单的状态,即使他们处于离线状态,一旦他们连接上,数据应该自动同步回服务器。

解决方案

 

该解决方案的主要组件是 AppSync API。AppSync 可以连接到多个源,也可以有自定义解析器。但是,在此示例中,API 使用 DynamoDB 作为其数据存储。AppSync API 支持三种操作——变更、订阅和查询。突变用于插入/更新记录。订阅以某种方式补充了变异操作,即只要有变异,订阅 API 的该应用程序的所有用户都会收到更新。这里值得一提的是,在 DynamoDB 数据库中进行简单的插入或更新不会向订阅者发送回任何通知。只有通过 AppSync API 的变更才会流向订阅者。另一方面,Query 是 API 上的简单 GraphQL 查询。

现在,让我们假设有一个系统可以提出服务请求,将请求放到 EventBridge 上。一旦 EventBridge 上有消息,就会触发Lambda 函数,该函数使用突变操作将消息推送到 AppSync API。AppSync 接收消息并将其保存在后备 DynamoDB 数据存储中。此时工单状态为open。

可以使用任何标准 JAVAScript 框架构建此应用程序的 UI。这将托管在 AWS S3 上并使用 CloudFront 分发进行分发。此应用程序的登录用户将根据某些参数订阅 AppSync API。例如,库克县的管理员可能会使用以下标准进行订阅

county: "Cook", status: "Open"

列出县内所有未开票。然后,管理员可以将未结工单分配给现场工程师。这将导致对 AppSync API 进行另一次变更操作,并且票证的状态将更改为“已分配”。

现场工程师登录到应用程序并订阅了条件

assignedTo: "<login-id>", status: "Assigned"

将能够看到他需要处理的工单列表。一旦他完成了工单的处理,他就会将工单的状态更改为“完成”。这将导致另一个更新记录的突变。每个感兴趣并订阅接收此票证更新的人都将在票证完成后立即收到有效的更新。在这里值得一提的是,AppSync 也可以在离线模式下工作。因此,如果现场工程师由于某种原因离线,他的更新将在客户端排队。每当他重新上线时,所有未决的突变都将通过后端。这是基于 AppSync API 上的变更和订阅的交互式仪表板的工作方式。

接下来,我将稍微讨论一下身份验证和授权。在这种情况下,最好的做法是使用公司的 Active Directory,假设存在一个来处理身份验证。Cognito 可以设置为与企业 AD 联合。AppSync 与 Cognito 本地连接。在这种情况下,每当用户登录到应用程序时,应用程序将使用相应的用户 ID 订阅 AppSync API,并将根据位置、角色、状态等自动过滤结果。其他授权方法,如自定义 Lambda 授权方、OpenId也可以使用连接、API 密钥等。

保护 AppSync API 的另一种方法是在 API 之上配置 Web 应用程序框架 (WAF),以保护它免受常见的 Web 攻击,如跨站点脚本和SQL 注入。WAF 与 AppSync API 原生集成。强烈建议使用所有面向公众的 AppSync API 配置 WAF。

结论

 

AWS AppSync 是一种多功能服务,可用于设计不同类型的应用程序。我已经讨论了我们可以多么轻松地设置交互式实时仪表板。AppSync 还可用于在客户端和服务器之间创建网络套接字握手,以设计实时聊天应用程序。它还可以简单地用作后端服务 API 或聚合来自 SQL、NoSQL、微服务等多个来源的数据。AWS AppSync 可能很快成为许多数字产品和应用程序不可或缺的一部分。



Tags:AWS AppSync   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
使用 AWS AppSync 创建实时控制面板
本文介绍了 AppSync,并列出了使用无服务器 GraphQL 开发实时仪表板的主要构建块。 在这个快节奏的世界中,应用程序需要实时传播信息。一些示例是跟踪货物移动、跟踪股票价格、...【详细内容】
2022-12-11  Search: AWS AppSync  点击:(288)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条