【发布时间】:2019-03-28 07:16:13
【问题描述】:
我有一个使用 AWS Amplify 的 React 应用程序设置。该应用程序的最初目的是充当 AWS Appstream 的门户。用户可以通过 Appstream api 登录和启动流实例。
生成流式 url 的部分是一个 Lambda 函数。目前,这是通过 AWS sdk 直接从应用程序调用的(IAM 上下文通过 Cognito 实现)。但是,门户网站的功能将会增加,我可能需要一个 api。为此,我正在考虑使用 AppSync/GraphQL。
但我想知道是否可以通过专门使用 GraphQL 来简化应用程序中的编码模式。也就是说,我可以使用 GraphQL/AppSync 来调用我创建的 Lambda 函数吗?我想这样做有几个原因:
我的主要目标是将 Amplify 简化为通用协议(在本例中为 GraphQL)。这意味着我可以创建在本地运行的门户版本。它还有助于支持我的另一个目标 - 通过使用 GraphQL,它可以使更改云提供商成为可能(无需重写所有内容)
我想在 Elm 中制作应用程序原型 - 看看针对 Amplify 进行编码是否可行。 Elm 没有 AWS/Amplify 库。但是有一个 GraphQL 库。这可以提供一种减少互操作的方法
我可以为 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