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

使用 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   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
本文介绍了 AppSync,并列出了使用无服务器 GraphQL 开发实时仪表板的主要构建块。 在这个快节奏的世界中,应用程序需要实时传播信息。一些示例是跟踪货物移动、跟踪股票价格、...【详细内容】
2022-12-11  Tags: AWS AppSync  点击:(0)  评论:(0)  加入收藏
▌简易百科推荐
本文介绍了 AppSync,并列出了使用无服务器 GraphQL 开发实时仪表板的主要构建块。 在这个快节奏的世界中,应用程序需要实时传播信息。一些示例是跟踪货物移动、跟踪股票价格、...【详细内容】
2022-12-11  科技狠活与软件技术  今日头条  Tags:AWS AppSync   点击:(0)  评论:(0)  加入收藏
一、什么是AOP?Aspect Oriented Programing 面向切面编程,相比较 oop 面向对象编程来说,Aop关注的不再是程序代码中某个类,某些方法,而aop考虑的更多的是一种面到面的切入,即层与...【详细内容】
2022-12-10  乐在编程  今日头条  Tags:AOP   点击:(4)  评论:(0)  加入收藏
系统是否可扩展?回答这个问题似乎很简单。但我们大多弄错了。不再了。阅读更多以找出答案。“应用程序可扩展吗?” 经理问。每周的系统路线图会议几乎进行了一半。我以为我们...【详细内容】
2022-12-09  科技狠活与软件技术  今日头条  Tags:分布式   点击:(4)  评论:(0)  加入收藏
音频流的 滤镜是通过 configure_audio_filters() 函数来创建的,因为 ffplay 为了代码的通用性,即便命令行参数不使用滤镜,AVFrame 也会过一遍 空滤镜做下样子。configure_audio...【详细内容】
2022-12-07  才高八斗船帆ub  今日头条  Tags:FFplay   点击:(5)  评论:(0)  加入收藏
请求测试 文档说明api地址: https://demo.chuanyufs.com/seek/public/index.php/api/qyinfo请求方式:GET|POST测试 key:5d50908c5a2e5c8a75d379341cd0ad88demo:https://demo.c...【详细内容】
2022-12-05  天天都是我洗碗  今日头条  Tags:API接口   点击:(13)  评论:(0)  加入收藏
DOM(Document Object Model)也称为文档对象模型,是 W3C 组织推荐的处理可扩展标记语 言的标准编程接口。DOM 是一种与浏览器、平台和语言无关的应用程序接口(API),它可以动态 地访...【详细内容】
2022-12-03  素手挽清风LINDA  今日头条  Tags:DOM   点击:(12)  评论:(0)  加入收藏
前言在之前的篇章中讲解了yaml文件的基本语法规则、yaml文件的读写方法、通过unittest自动化测试框架+ddt+yaml实现数据驱动。同样Pytest自动化测试框架也能读取yaml文件实...【详细内容】
2022-12-03  测试媛小懒  今日头条  Tags:pytest   点击:(21)  评论:(0)  加入收藏
在Spring项目中,我们在定义一个bean的时候,可能会随手写一个close或者shutdown方法去关闭一些资源。但是有时候这两个看起来很正常的方法名,即使我们不添加任何特殊配置,也可能...【详细内容】
2022-12-02  程序员拾山  今日头条  Tags:close   点击:(17)  评论:(0)  加入收藏
小白是一家大型食品公司下属子公司的质检员。由于总公司主营业务调整,要将原先两家子公司进行了整合,业务相近的部门也进行了合并。最近,HR与小白协商,其原岗位已撤销,想安排他到...【详细内容】
2022-12-02  上观新闻    Tags:解除劳动合同   点击:(8)  评论:(0)  加入收藏
短短几行代码对全球产生巨大影响 1997年,Ethan Zuckerman发明了弹出式广告,从而打破了互联网。他在Tripod.com工作,一家允许人们免费制作小网页的在线服务公司。为了赚钱,Tripo...【详细内容】
2022-12-01  金文号FR  今日头条  Tags:代码   点击:(9)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条