使用Amplify自动化用于AppSync的Lambda解析器?

问题描述 投票:1回答:1

我有一个使用AWS Amplify的React应用程序设置。该应用程序的最初目的是充当AWS Appstream的门户。用户可以通过Appstream api登录和启动流媒体实例。

生成流式URL的部分是Lambda函数。目前,这是通过AWS sdk直接从应用程序调用的(IAM上下文通过Cognito实现)。但是,门户网站的功能会增长,我可能需要api。为此,我正在考虑使用AppSync / GraphQL。

但我想知道我是否可以通过使用GraphQL来简化应用程序中的编码模式。也就是说,我可以使用GraphQL / AppSync来调用我创建的Lambda函数吗?我想这样做有几个原因:

  1. 我的主要目标是将Amplify减少为通用协议(在本例中为GraphQL)。这意味着我可以创建一个在本地运行的门户版本。它还有助于支持我的另一个目标 - 通过使用GraphQL,它可以改变云提供商(无需重写所有内容)
  2. 我想在Elm中对应用程序进行原型设计 - 看看对Amplify进行编码是否切实可行。有了Elm,没有AWS / Amplify库。但是有一个GraphQL库。这可以提供减少互操作的手段
  3. 我可以为Lambda调用添加一个Rest api,但是保持api访问一个方法会很好

对不起,如果这是一个天真的问题 - 我正在学习AppSync / GraphQL,Lambda和Amplify。

看看AppSync本身,似乎我可以创建一个名为Fleet的对象,并使streamingUrl成为GetFleet()返回的属性。然后,我可以将解析器附加到此属性的Lambda函数。但是,似乎没有明显的方法通过Amplify配置它。我已经通过amplify function add成功地重新创建了我的Lambda函数,这很不错。

有没有办法通过Amplify实现自动化?也许这是创建我自己的GraphQL Transform的问题?或者在Amplify中有什么东西可以做到这一点,我只是没有看到它?

aws-lambda graphql aws-appsync aws-amplify
1个回答
2
投票

更新:

现在似乎可以通过AppSync实现。你可以阅读更多关于它herehere

原始答案:

回答关于通过GraphQL调用Lambda的问题部分:

我认为现在可以使用AppSync,但不能使用Amplify。

使用AppSync控制台将允许您创建Lambda解析器 - Amplify目前不支持此功能。当您从Amplify发布时,您的解析器将被覆盖。

看来这个问题正在解决:

https://github.com/aws-amplify/amplify-cli/issues/74

https://github.com/aws-amplify/amplify-cli/issues/83


© www.soinside.com 2019 - 2024. All rights reserved.