创建在特定事件发生时调用的自定义 appsync 解析器或 lambda 函数

Posted

技术标签:

【中文标题】创建在特定事件发生时调用的自定义 appsync 解析器或 lambda 函数【英文标题】:Creating custom appsync resolvers or lambda functions that are called when a certain event happens 【发布时间】:2019-11-29 15:58:05 【问题描述】:

我正在使用 AppSync 开发一个应用程序,并且我需要一些自定义,例如 - 我想要一个邀请模型,它有一个 id 是邀请码,并且有一个连接到用户的 user 字段在模型中,每当创建用户时,输入都需要提供邀请 ID(邀请码),但它仅将用户连接到邀请,而不是对用户的邀请。

我曾尝试阅读有关自定义解析器的信息,但它们使用一种很难学习的特殊语言,因为它们的文档没有那么有用。 我尝试寻找如何使用 aws amplify 制作 lambda 函数,然后我遇到了这个问题https://github.com/aws-amplify/amplify-cli/issues/997。

所以我目前需要的功能是 - 管理员创建和邀请模型并为其提供一个 id 和一个最初为 null 的用户字段。当创建用户(也是模型)时,输入字段之一是将邀请连接到用户的邀请 ID,因此我可以在查询用户时获得邀请,但是这样我无法通过邀请查询用户,所以我想做一个 lambda 函数,在创建用户后将用户 ID 连接到邀请表,我该怎么做呢?

【问题讨论】:

【参考方案1】:

有几种方法可以解决这个问题。最简单的可能是设置管道解析器。请参阅此处的文档 https://docs.aws.amazon.com/appsync/latest/devguide/pipeline-resolvers.html

本质上,您将设置一个 createUser 突变,解析器是 Pipeline。在第一个函数中,您将创建您的用户,在接下来的下一个函数中,您将用户 ID 连接到邀请。

请务必遵循此处有关管道解析器的一些教程,因为这将解决您的用例:https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-pipeline-resolvers.html#aws-appsync-tutorial-pipeline-resolvers

【讨论】:

使用管道解析器,我可以访问 AppSync 创建的 DynamoDB 表(使用 lambda 解析器,而不是 VTL 解析器)? 你知道如何使用放大命令行来做到这一点吗?我找不到文档。谢谢。

以上是关于创建在特定事件发生时调用的自定义 appsync 解析器或 lambda 函数的主要内容,如果未能解决你的问题,请参考以下文章

通过 AppSync 上的自定义 Lambda 授权方对突变进行身份验证

html EVENT对象

AWS AppSync 中订阅的自定义筛选

event的HTML对象

DOM EVENT

Vue的双向绑定以及组件的自定义事件