问题标签 [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.

0 投票
1 回答
4225 浏览

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 请求解析期间执行多次(请记住,除了初始操作检查之外,每个嵌套对象一个)。

也许我可以使用通知来解决订阅问题并刷新查询,但我也必须对此进行研究。

其他人也有这个问题吗?你打算怎么解决,或者已经解决了?

任何帮助都感激不尽

卡洛斯

0 投票
3 回答
7499 浏览

amazon-web-services - 用于在 AppSync 中查询一对多关系的“类型不匹配错误,预期类型 LIST”

架构:

查询给定用户的所有课程的解析器:

响应图:

查询:

错误:

CurriculumTable 有一个名为 userIdIndex 的全局二级索引,它以 userId 作为分区键。

如果我将响应映射更改为:

输出如下:

如果我获取该字符串并通过我的前端应用程序中的 console.log 运行它,我会得到:

这显然是一个对象。我如何使它...不是对象,以便 AppSync 将其正确读取为列表?

解决方案

我的响应地图周围有一组花括号。我很确定它是由亚马逊放置在生成器中的。删除它们修复了它。

0 投票
1 回答
774 浏览

amazon-web-services - Appsync dynamodb 请求映射 - 默认变量

如果未提供来自查询的变量之一,我正在寻找一种为 appsync dynamodb 解析器设置默认变量的方法。假设我们有简单的数据库请求映射

我找到了一种使用条件语句来做到这一点的方法

通过上述方式,如果未提供其中一个属性,我们也可以排除它

如果$context.arguments.name未提供,则不会将 name 属性插入到 dynamodb 中。但是上面有什么更聪明的方法吗?

0 投票
1 回答
270 浏览

amazon-web-services - 使用 cognito 在 appsync 中进行简单验证的示例?

我刚刚开始研究 appsync 和 cognito,周围有很多很好的例子,但我找不到一个展示如何限制用户基于身份改变数据的能力的例子。

这是我推测的一个简单的例子:

  • "cat" 项目具有:名称、描述和 creator_id
  • 所有用户都可以创建“猫”项目
  • 他们没有指定 owner_id
  • 从他们在 cognito 中的身份推断
  • 用户可以编辑具有匹配 creator_id 的猫物品

我假设这是一个非常愚蠢的 lambda 脚本 - 但我无法找到任何涵盖此的示例。

谢谢你的帮助,

-迈克尔

0 投票
2 回答
11572 浏览

amazon-s3 - 如何使用 AWS AppSync 将文件上传到 AWS S3

遵循AWS AppSync 文档中的此文档/教程

它指出:

使用 AWS AppSync,您可以将它们建模为 GraphQL 类型。如果您的任何突变具有包含存储桶、键、区域、mimeType 和 localUri 字段的变量,则开发工具包会为您将文件上传到 Amazon S3。

但是,我无法将文件上传到我的 s3 存储桶。我知道该教程缺少很多细节。更具体地说,教程并没有说NewPostMutation.js需要更改。

我通过以下方式更改了它:

然而,即使在我实施了这些更改之后,文件也没有上传......

0 投票
4 回答
5392 浏览

amazon-aurora - Aurora PostgreSQL 可以与 AWS AppSync 一起使用吗?

我已经看到了将 DynamoDB 作为 AWS AppSync 数据源的示例,但我想知道是否可以使用 Aurora(特别是 PostgreSQL)?如果是,解析器会是什么样的基本示例?是否有任何资源可以演示为 Aurora PostgreSQL 甚至 MySQL 执行此操作?

0 投票
1 回答
727 浏览

reactjs - Reactjs/Apollo/AppSync Mutation Optimistic Response Resolved ID

因此,首先我将首先说我对我的突变添加了一个乐观的响应,这样它就会停止产生重复项,如此和前一个 SO问题中所引用的。

所以这一切都有效,但我有一组依赖突变在第一次使用异步等待之后运行。

现在这可行,并且它使用与示例项目相同的突变模式

唯一的问题是我无法强制将状态更新为使用 Async Await 时实际插入的 ID,因此所有人员条目都会获得占位符 UUID。请注意,我也尝试过使用id: -1createPerson 突变,但这并没有改变任何东西,它只是对所有整体使用了负数。

有没有更好的方法来做到这一点?我做错了什么。这一切都在没有optimisticResponse 的情况下工作,但它总是为每个突变创建两个条目。

0 投票
1 回答
876 浏览

aws-appsync - AppSync 的订阅是否仅限于一个特定的用例?

我花了最后一天尝试AWS AppSync,我对订阅可以做什么有点失望。在我看来,当前状态AppSync subscription是针对您拥有项目列表并且希望它在所有客户端上同步的用例。

与apollo-subscription相比,它非常有限。

因此,如果我正确理解了文档:

  • 我们无法过滤出您要将数据发送给的目标

我有一些用例,比如对 Post 投票之类的突变可能导致仅将不同类型的数据推送给 Post 的所有者。

  • 它必须与特定的突变相关联,并且必须属于同一类型

我有一些用例,其中突变甚至查询可能导致向正在侦听事件的特定目标发送推送。

  • 它没有链接到解析器

如果我错了,你能纠正我吗?

0 投票
2 回答
1857 浏览

amazon-dynamodb - Aws appsync:可以使用 dynamodb 解析器在一个请求中执行两个 putitem 吗?

在 aws appsync 中,我想打一个电话 (start_game(phrase:”foo”)),它将写入两个单独的 dynamodb 表(游戏和转弯)。我确信我可以使用 lambda 解析器来做到这一点,但希望避免额外的复杂性。

有没有办法在一个 dynamodb 突变中做两个 putitem(到两个不同的表)?

0 投票
1 回答
46 浏览

amazon-web-services - 获取有关 aws 产品更新的最佳方式是什么?

所以我正在检查 aws appsync,很明显它正在开发中。我真的很想知道可能会影响我在平台上工作的最新变化和平台更新。有没有一种简单的方法来获取有关特定 AWS 服务(在我的情况下为 appsync)更改的更新,而不会受到所有 AWS 产品(其中有很多)的所有更改的影响?

我知道在亚马逊内部有各种各样的兴趣电子邮件列表,但显然这些不是公开的。