【问题标题】:Automate Lambda resolver for AppSync using Amplify?使用 Amplify 为 AppSync 自动化 Lambda 解析器?
【发布时间】: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 函数吗?我想这样做有几个原因:

  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

      【讨论】:

        猜你喜欢
        • 2019-04-16
        • 2020-05-09
        • 2021-05-02
        • 2020-12-05
        • 2022-06-17
        • 1970-01-01
        • 2021-07-18
        • 2019-03-23
        • 2021-04-21
        相关资源
        最近更新 更多