【发布时间】:2019-04-18 03:12:03
【问题描述】:
我已使用架构和解析器设置 AppSync。我可以将架构导出到文件,但看不到如何导出解析器。
我想将这些存储在一个文件中,以便我可以对它们进行源代码控制。它们包含大量我不想丢失的 SQL 代码。
【问题讨论】:
标签: amazon-web-services graphql aws-appsync
我已使用架构和解析器设置 AppSync。我可以将架构导出到文件,但看不到如何导出解析器。
我想将这些存储在一个文件中,以便我可以对它们进行源代码控制。它们包含大量我不想丢失的 SQL 代码。
【问题讨论】:
标签: amazon-web-services graphql aws-appsync
在您走得更远之前,我建议您考虑使用 CloudFormation 管理您的 AppSync 资源。 CloudFormation 模板可以轻松保存在源代码管理中。
AppSync 和 CloudFormation 教程:
https://read.acloud.guru/deploy-a-graphql-service-on-aws-with-the-serverless-framework-7af8fc22a01d
https://read.acloud.guru/deploy-an-aws-appsync-graphql-api-with-amazon-cloudformation-9a783fdd8491
或者,如果您的解析器没有执行任何自定义操作,您可以使用 Amplify 的 GraphQL 转换器。这允许您注释您的模式,它会自动从注释中生成解析器。然后您可以将带注释的架构放入源代码管理中。文档:
https://aws-amplify.github.io/docs/js/api#using-graphql-transformers
【讨论】:
AWS 的好处是可能有一个 API 端点可以满足您的需求。
在这种情况下,您可以通过ListResolvers API 端点访问解析器列表,并且可以通过GetResolver API 端点检索特定解析器。
【讨论】:
有一个专门为此制作的node.js 包:
export-appsync。
但从长远来看,通过无服务器框架 (serverless.com)、cloudformation 或 AWS amplify 框架对您的架构和解析器进行源代码控制会更容易。
【讨论】:
命令模板: 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
【讨论】: