如何在部署前从@aws-cdk/aws-appsync 检索 schema.graphql 文件

Posted

技术标签:

【中文标题】如何在部署前从@aws-cdk/aws-appsync 检索 schema.graphql 文件【英文标题】:How to retrieve the schema.graphql file from @aws-cdk/aws-appsync before deployment 【发布时间】:2021-01-07 15:35:52 【问题描述】:

我正在使用 code-first approach in @aws-cdk/aws-appsync 来生成我的 graphql 架构。出于 Typescript 代码生成的目的,我需要一种在部署之前检索 schema.graphql 的方法(可能以某种方式从 cdk synth 命令中提取它?)。

【问题讨论】:

【参考方案1】:

要在部署前获取自动创建的架构,请使用以下脚本:

readFile('cdk.out/<YOUR-APP-NAME>.template.json', 'utf8', (err, data) => 
  if (err) 
    throw err;
  
  const definition = JSON.parse(data)
    .Resources
    .<YOUR-SCHEMA-ID> // replace with your schema id
    .Properties
    .Definition;
  writeFile('lib/domain/generated.graphql', definition, (error) => 
    if (error) throw error;
  );
);

【讨论】:

【参考方案2】:

我不确定我们是否面临同样的问题。基本上我想在我的客户端 react 应用程序中访问 GQL 模式,该应用程序与定义基础设施的 cdk 应用程序位于不同的存储库中。

我最终使用 aws-cli 通过以下命令提取 appsync 架构:

aws appsync get-introspection-schema --api-id [API-ID] --format SDL --no-include-directives outfile=[OUTFILE]

【讨论】:

不是同一个问题。为了在我的客户端应用程序中同步架构,我使用了放大。

以上是关于如何在部署前从@aws-cdk/aws-appsync 检索 schema.graphql 文件的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 3 - 发布前从集合中添加/删除

仅当先前从 <URL> 合并修订 X 到 Y 以重新集成源时,才能使用重新集成,但情况并非如此

laravel开发环境部署遇到的问题和个人感受

如何围绕失败的合并分叉两个git分支

jquery:如何在提交之前从表单中删除空白字段?

通过API发布时,将应用程序名称添加到Twitter帖子