点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

AWS AppSync,生产就绪且新增六项功能

  • 2019-10-25
  • 本文字数:2598 字

    阅读完需:约 9 分钟

AWS AppSync,生产就绪且新增六项功能

如果您构建 (或计划构建) 数据驱动型 Web 和移动应用,并需要实时更新和离线功能,不妨试试 AWS AppSync。AWS AppSync 专为 iOS、Android、JavaScript 和 React Native 应用设计,于 2017 年在 AWS re:Invent 大会上以预览形式发布。有关详情,请单击此处。AWS AppSync 围绕开放标准查询语言 GraphQL 构建,便于应用程序从云中请求所需的精确数据。


我很高兴地宣布,AWS AppSync 服务的预览期已过,现已正式推出且已生产就绪,并增加了以下六项新功能,以便简化应用程序开发流程:



控制台日志访问 – 您现在可以在 AWS AppSync 控制台中查看在测试 GraphQL 查询、突变和订阅时生成的 CloudWatch Logs 条目。


使用模拟数据进行控制台测试 – 您现在可以在控制台中创建和使用模拟环境对象进行测试。


订阅解析程序 – 与查询和突变请求一样,您现在还可以针对 AWS AppSync 订阅请求创建解析程序。


适用于 DynamoDB 的 GraphQL 批处理操作 – 您现在可以在一个或多个表中使用 DynamoDB 的批处理操作 (BatchGetItemBatchWriteItem)。在解析程序函数中。


CloudWatch 支持 – 您现在可以使用 Amazon CloudWatch 指标和 CloudWatch Logs 来监控 AWS AppSync API 调用。


CloudFormation 支持 – 您现在可以使用 AWS CloudFormation 模板定义 schema、数据源和解析程序。


AppSync 简介


在深入探讨新功能之前,我们来了解下从控制台开始创建 AWS AppSync API 的流程。我首先单击 Create API (创建 API):



为我的 API 输入名称,并 (出于演示目的) 选择使用示例 schema



此 schema 定义了一系列 GraphQL 对象类型。每个对象类型都有一组字段,并提供可选参数:



如果我在创建自己的 API,我就会在此刻输入我的 schema。但由于我使用的是示例 schema,所以不用这样做。无论采用哪种方式,我都需要单击创建以继续:



GraphQL schema 类型定义了数据操作的入口点。代表特定 schema 的所有已存储数据均必须可以使用开始于其中一个入口点的路径访问。控制台提供了适合我的 API 的终端节点和密钥:



它还为我提供了相关指南和一组功能完善的示例应用以供我克隆:



在我单击创建后,AWS AppSync 为我创建了两个 Amazon DynamoDB 表。我可以单击 Data Sources (数据源) 查看这些表:



我还可以查看和修改我的 schema、发出查询,并修改 API 的各种设置。


我们来快速了解一下各项新功能…


控制台****日志访问


AWS AppSync 控制台已允许我发出查询和查看结果,现在还提供了相关日志条目的访问权限。要查看这些条目,我必须启用日志功能 (详见后文),打开日志,然后选中相应复选框。下面是一个简单的添加新事件的突变查询。我输入查询并单击箭头以进行测试:



我可以单击在 CloudWatch 中查看以查看更详细的视图:



要了解更多信息,请参阅测试和调试解析程序


使用模拟数据进行控制台测试


您现在可以在控制台中创建环境对象,并在控制台中将该环境对象传递到您的某个解析程序以进行测试。我将在我的 schema 中添加 testResolver 项目:



然后,我在 schema 页面右侧找到该项目,并单击连接



我选择一个数据源 (此数据源用于测试目的,实际应用中的数据源无法访问),并使用 Put item (放置项目) 映射模板:



然后,我单击 Select test context (选择测试环境),选择 Create New Context (创建新环境),命名我的测试内容,并单击保存 (如您所见,测试环境包含来自查询的参数,并且结果的每个字段都将返回相应的值):



保存新的解析程序后,我单击测试以查看请求和响应:



订阅解析程序


您的 AWS AppSync 应用程序可以监控对任何数据源的更改,只需使用 @aws_subscribe GraphQL schema 指令并定义订阅类型即可。AWS AppSync 客户端开发工具包使用 MQTT over Websockets 连接至 AWS AppSync,并且系统会在每一次突变后通知应用程序。您现在可以将解析程序 (可将 GraphQL 负载转换为底层存储系统所需的协议) 附加到订阅字段,并在客户端尝试建立连接时执行授权检查。这样,您可以针对各种查询、突变和订阅执行相同的具体授权例程。


如需了解有关此功能的更多信息,请参阅实时数据


GraphQL 批处理操作


您的解析程序现在可以在一个区域中使用涵盖一个或多个表的 DynamoDB 批处理操作功能。这样,您可以在一个查询中使用密钥列表、读取多个表的报告、将记录批量写入多个表中,以及在多个表中有条件地写入或删除相关报告。


要使用此功能,您用于访问表的 IAM 角色必须向 DynamoDB 的 BatchGetItemBatchPutItem 函数授予权限。


要了解更多信息,请参阅 DynamoDB 批量解析程序教程。


CloudWatch Logs 支持


您现在可以让 AWS AppSync 在 CloudWatch Logs 中记录 API 请求。单击设置Enable logs (启用日志),然后选择 IAM 角色和日志级别:



CloudFormation 支持


您可以在模板中使用以下 CloudFormation 资源类型来定义 AWS AppSync 资源:


AWS::AppSync::GraphQLApi – 从数据源(Amazon Elasticsearch Service 域或 DynamoDB 表) 角度定义 AppSync API。


AWS::AppSync::ApiKey – 定义访问数据源所需的访问密钥。


AWS::AppSync::GraphQLSchema – 定义 GraphQL schema。


AWS::AppSync::DataSource – 定义数据源。


AWS::AppSync::Resolver – 通过引用 schema 和数据源来定义解析程序,并添加请求的映射模板。


下面是一个简单的 YAML 形式的 schema 定义:


YAML


AppSyncSchema:    Type: "AWS::AppSync::GraphQLSchema"    DependsOn:      - AppSyncGraphQLApi    Properties:      ApiId: !GetAtt AppSyncGraphQLApi.ApiId      Definition: |        schema {          query: Query          mutation: Mutation        }        type Query {          singlePost(id: ID!): Post          allPosts: [Post]        }        type Mutation {          putPost(id: ID!, title: String!): Post        }        type Post {          id: ID!          title: String!        }
复制代码


现已推出


这些新功能现已提供,您可以立即开始使用!下面是您可能感兴趣的几篇博文和其他资源:



2019-10-25 08:00477

评论

发布
暂无评论
发现更多内容

接口文档生成工具 一键生成文档 ApiPost

CodeNongXiaoW

项目管理 大前端 测试 后端 接口管理工具

React Native 页面浏览事件采集方案 | 数据采集

神策技术社区

大前端 后端 代码 数据采集

如何做上线前的实操演练?

boshi

项目管理

赋能智慧社区,多维度提升管理质效

CECBC

抖音快手短视频SEO营销系统软件开发价格

《MySQL系列》 InnoDB行记录存储结构

Silently9527

MySQL 面试 innodb innodb行记录

数字人民币银银合作以及平台接入的模式分析

CECBC

接口管理工具APIPOST的预/后执行脚本里,常见的响应参数变量和常用方法集合——apipost

Proud lion

大前端 后端 Postman 开发工具 接口文档

为什么代码会有好坏?

鉴释

程序员 代码 代码规范

如何动手做出一个 CPU

Java 编程 架构 cpu 电脑

带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

华为云开发者联盟

算法 数据集 目标检测 高斯检测框 ProbIoU

【架构实战营】模块五作业

Abner S.

#架构实战营

☕【Java技术指南】「开发实战专题」Lombok插件开发实践必知必会操作!

洛神灬殇

Java 编译 lombok 8月日更

华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?

华为云开发者联盟

数据库 云数据库 GaussDB(for MySQL) 云栈 事务数据库服务

Go 语言, 一文彻底搞懂 map 实现原理

微客鸟窝

Go 语言 8月日更

百度世界2021:百度大脑升级、昆仑芯2量产、智能云加速AI落地爆发

百度大脑

人工智能 百度大脑

菜谱系统小成阶段,Python Web 领域终于攻占一个小山头

梦想橡皮擦

8月日更

【从零开始学爬虫】采集当当网图书商品信息

前嗅大数据

大数据 爬虫 数据采集

一文了解全球主要经济体对区块链技术的采纳情况和监管政策

CECBC

基于java springboot vue uniapp商城源码(毕设)

清风

Java uniapp 商城项目 毕业设计

Android SDK 启动退出方案演进

神策技术社区

大前端 后端 代码 数据采集

科技平台与社会的和谐相处

CECBC

短视频go研发框架实践

百度Geek说

百度 架构 后端 短视频 hulk

抖音快手短视频SEO系统开发

缓存 | Redis 缓存避坑指南

RadonDB

数据库 redis

web技术分享| 实现WebRTC多个对等连接

anyRTC开发者

音视频 WebRTC JavaScrip web技术分享

【墨天轮专访第一期】人大金仓:国产数据库的竞争本质就是人才的竞争

墨天轮

数据库 国产数据库 KingBase 人大金仓

MySQL 系列教程之(八)DQL:子查询与表连接

若尘

MySQL 数据库 8月日更

抖音快手短视频平台获客系统开发内容

抖音快手短视频营销软件系统开发案例

Go语言那些事儿之浅谈协程并发竞争资源问题

Regan Yue

Go 语言 8月日更

AWS AppSync,生产就绪且新增六项功能_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章