【问题标题】:How do I export AWS AppSync resolvers?如何导出 AWS AppSync 解析程序?
【发布时间】:2019-04-18 03:12:03
【问题描述】:

我已使用架构和解析器设置 AppSync。我可以将架构导出到文件,但看不到如何导出解析器。

我想将这些存储在一个文件中,以便我可以对它们进行源代码控制。它们包含大量我不想丢失的 SQL 代码。

【问题讨论】:

    标签: amazon-web-services graphql aws-appsync


    【解决方案1】:

    在您走得更远之前,我建议您考虑使用 CloudFormation 管理您的 AppSync 资源。 CloudFormation 模板可以轻松保存在源代码管理中。

    AppSync 和 CloudFormation 教程:

    或者,如果您的解析器没有执行任何自定义操作,您可以使用 Amplify 的 GraphQL 转换器。这允许您注释您的模式,它会自动从注释中生成解析器。然后您可以将带注释的架构放入源代码管理中。文档:

    https://aws-amplify.github.io/docs/js/api#using-graphql-transformers

    【讨论】:

    • 感谢您提供的信息。这些链接详细说明了如何手动创建配置文件。有没有办法从现有配置中输出这些文件?
    • 在 GUI 中附加解析器后,您可以使用 CLI 导出它们。 aws appsync list-resolvers --api-id --type-name Post
    【解决方案2】:

    AWS 的好处是可能有一个 API 端点可以满足您的需求。

    在这种情况下,您可以通过ListResolvers API 端点访问解析器列表,并且可以通过GetResolver API 端点检索特定解析器。

    【讨论】:

    • 这是一个合理的假设,我也尝试过。然而,默认解析器不会返回,但显然它们必须在幕后,否则 API 将无法工作。这是一个片状区域。哇——更奇怪。您需要做的是为类型上的每个字段手动附加一个解析器。因此默认解析器会显示在 UI 中,一旦附加它们,您就可以导出它们。但同样,这些默认值最初必须存在。这是我处理过的比较不成熟的 AWS 服务之一。与新的合作很好;)。
    【解决方案3】:

    有一个专门为此制作的node.js 包: export-appsync。 但从长远来看,通过无服务器框架 (serverless.com)、cloudformation 或 AWS amplify 框架对您的架构和解析器进行源代码控制会更容易。

    【讨论】:

      【解决方案4】:

      命令模板: TYPE_NAME 值:Mutation、Query 和 Subscription。

      aws appsync list-resolvers --api-id YOUR_API_ID --type-name TYPE_NAME >> YOUR_FILE.txt
      

      示例:使用 YOUR_API_ID = d5gebysm3(在我的情况下,原始长度为 26)

      aws appsync list-resolvers --api-id d5gebysm3 --type-name Mutation >> Mutation.txt
      aws appsync list-resolvers --api-id d5gebysm3 --type-name Query >> Query.txt
      aws appsync list-resolvers --api-id d5gebysm3 --type-name Subscription >> Subscription.txt
      

      【讨论】:

        猜你喜欢
        • 2021-05-02
        • 2020-12-05
        • 2019-02-04
        • 2018-10-11
        • 2019-04-16
        • 2019-02-03
        • 2019-06-04
        • 2020-02-12
        • 2018-10-21
        相关资源
        最近更新 更多