问题标签 [aws-appsync]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - AWS AppSync 授权
我计划使用 AWS Appsync 在 lambda 函数中迁移 graphQL 端点,该函数由 POST 通过 API Gateway 触发。我正在研究 AppSync 主要是因为我无法使用 Lambda 函数创建的订阅。
我的身份验证机制基于 Auth0,使用无密码,而我的授权机制基于 DynamoDB 中多个表的数据,并且它嵌入在 graphQL 解析器中,正如 Facebook 和 Apollo 所推荐的那样。
更重要的是,它基于请求的每个部分,包括检查调用查询/突变的权限,然后,查询中包含的不同实体,因为正在触发适当的解析器。
据我所知,这在 AWS AppSync 中远非可行,因为它使用 Cognito 强制执行。也许某种自定义授权器,如 API Gateway 中的可以完成这项工作,但仍然不确定,因为它需要在 graphQL 请求解析期间执行多次(请记住,除了初始操作检查之外,每个嵌套对象一个)。
也许我可以使用通知来解决订阅问题并刷新查询,但我也必须对此进行研究。
其他人也有这个问题吗?你打算怎么解决,或者已经解决了?
任何帮助都感激不尽
卡洛斯
amazon-web-services - 用于在 AppSync 中查询一对多关系的“类型不匹配错误,预期类型 LIST”
架构:
查询给定用户的所有课程的解析器:
响应图:
查询:
错误:
CurriculumTable 有一个名为 userIdIndex 的全局二级索引,它以 userId 作为分区键。
如果我将响应映射更改为:
输出如下:
如果我获取该字符串并通过我的前端应用程序中的 console.log 运行它,我会得到:
这显然是一个对象。我如何使它...不是对象,以便 AppSync 将其正确读取为列表?
解决方案
我的响应地图周围有一组花括号。我很确定它是由亚马逊放置在生成器中的。删除它们修复了它。
amazon-web-services - Appsync dynamodb 请求映射 - 默认变量
如果未提供来自查询的变量之一,我正在寻找一种为 appsync dynamodb 解析器设置默认变量的方法。假设我们有简单的数据库请求映射
我找到了一种使用条件语句来做到这一点的方法
通过上述方式,如果未提供其中一个属性,我们也可以排除它
如果$context.arguments.name
未提供,则不会将 name 属性插入到 dynamodb 中。但是上面有什么更聪明的方法吗?
amazon-web-services - 使用 cognito 在 appsync 中进行简单验证的示例?
我刚刚开始研究 appsync 和 cognito,周围有很多很好的例子,但我找不到一个展示如何限制用户基于身份改变数据的能力的例子。
这是我推测的一个简单的例子:
- "cat" 项目具有:名称、描述和 creator_id
- 所有用户都可以创建“猫”项目
- 他们没有指定 owner_id
- 从他们在 cognito 中的身份推断
- 用户可以编辑具有匹配 creator_id 的猫物品
我假设这是一个非常愚蠢的 lambda 脚本 - 但我无法找到任何涵盖此的示例。
谢谢你的帮助,
-迈克尔
amazon-s3 - 如何使用 AWS AppSync 将文件上传到 AWS S3
遵循AWS AppSync 文档中的此文档/教程。
它指出:
使用 AWS AppSync,您可以将它们建模为 GraphQL 类型。如果您的任何突变具有包含存储桶、键、区域、mimeType 和 localUri 字段的变量,则开发工具包会为您将文件上传到 Amazon S3。
但是,我无法将文件上传到我的 s3 存储桶。我知道该教程缺少很多细节。更具体地说,教程并没有说NewPostMutation.js
需要更改。
我通过以下方式更改了它:
然而,即使在我实施了这些更改之后,文件也没有上传......
amazon-aurora - Aurora PostgreSQL 可以与 AWS AppSync 一起使用吗?
我已经看到了将 DynamoDB 作为 AWS AppSync 数据源的示例,但我想知道是否可以使用 Aurora(特别是 PostgreSQL)?如果是,解析器会是什么样的基本示例?是否有任何资源可以演示为 Aurora PostgreSQL 甚至 MySQL 执行此操作?
reactjs - Reactjs/Apollo/AppSync Mutation Optimistic Response Resolved ID
因此,首先我将首先说我对我的突变添加了一个乐观的响应,这样它就会停止产生重复项,如此处和前一个 SO问题中所引用的。
所以这一切都有效,但我有一组依赖突变在第一次使用异步等待之后运行。
现在这可行,并且它使用与示例项目相同的突变模式
唯一的问题是我无法强制将状态更新为使用 Async Await 时实际插入的 ID,因此所有人员条目都会获得占位符 UUID。请注意,我也尝试过使用id: -1
createPerson 突变,但这并没有改变任何东西,它只是对所有整体使用了负数。
有没有更好的方法来做到这一点?我做错了什么。这一切都在没有optimisticResponse 的情况下工作,但它总是为每个突变创建两个条目。
aws-appsync - AppSync 的订阅是否仅限于一个特定的用例?
我花了最后一天尝试AWS AppSync
,我对订阅可以做什么有点失望。在我看来,当前状态AppSync subscription
是针对您拥有项目列表并且希望它在所有客户端上同步的用例。
与apollo-subscription相比,它非常有限。
因此,如果我正确理解了文档:
- 我们无法过滤出您要将数据发送给的目标
我有一些用例,比如对 Post 投票之类的突变可能导致仅将不同类型的数据推送给 Post 的所有者。
- 它必须与特定的突变相关联,并且必须属于同一类型
我有一些用例,其中突变甚至查询可能导致向正在侦听事件的特定目标发送推送。
- 它没有链接到解析器
如果我错了,你能纠正我吗?
amazon-dynamodb - Aws appsync:可以使用 dynamodb 解析器在一个请求中执行两个 putitem 吗?
在 aws appsync 中,我想打一个电话 (start_game(phrase:”foo”)),它将写入两个单独的 dynamodb 表(游戏和转弯)。我确信我可以使用 lambda 解析器来做到这一点,但希望避免额外的复杂性。
有没有办法在一个 dynamodb 突变中做两个 putitem(到两个不同的表)?
amazon-web-services - 获取有关 aws 产品更新的最佳方式是什么?
所以我正在检查 aws appsync,很明显它正在开发中。我真的很想知道可能会影响我在平台上工作的最新变化和平台更新。有没有一种简单的方法来获取有关特定 AWS 服务(在我的情况下为 appsync)更改的更新,而不会受到所有 AWS 产品(其中有很多)的所有更改的影响?
我知道在亚马逊内部有各种各样的兴趣电子邮件列表,但显然这些不是公开的。