在使用AWS CDK构建Appsync应用程序时,可能会遇到问题。具体来说,Appsync会使用“graphql-transformer”库来转换GraphQL架构,并使用CDK构建Appsync资源。然而,这可能会导致部署失败,因为CDK在创建Appsync资源时无法找到所需的变换信息。解决这个问题的一种方法是手动加载相关转换器信息。下面是这个问题的代码示例:
import { AppSyncStack } from './appsync-stack';
import { Transformer } from 'graphql-transformer-core';
import { DynamoDBModelTransformer } from 'graphql-dynamodb-transformer';
import { HttpTransformer } from 'graphql-http-transformer';
const app = new cdk.App();
const stack = new AppSyncStack(app, 'AppSyncStack');
Transformer.transform(`
type Todo @model {
id: ID!
name: String!
}
`, [
new DynamoDBModelTransformer(),
new HttpTransformer()
]).then((transformedSchema) => {
// Add Appsync resources to stack
stack.addAppSyncResources(transformedSchema);
});
这里,我们手动加载了需要用到的转换器,然后使用Transformer.transform()
函数对GraphQL模式进行处理。处理后的结果可以用于构建Appsync资源并将其添加到CDK堆栈中。