Учитывая следующую схему graphql
# graphql/schema.graphql
type AppUser {
userId: String
fullName: String
}
type Query {
getUser(userId: String): AppUser
getUsers(): [AppUser]
}
type Mutation {
addUser(user: AppUser!): AppUser
}
И следующий код CDK, определенный в lib / mystack.ts:
const graphql = new appsync.GraphQLApi(this, 'GraphQLApi', {
name: 'metrolens-graphql-api',
logConfig: {
fieldLogLevel: appsync.FieldLogLevel.ALL,
},
authorizationConfig: {
defaultAuthorization: {
// userPool,
defaultAction: appsync.UserPoolDefaultAction.ALLOW,
},
// additionalAuthorizationModes: [{ apiKeyDesc: 'My API Key' }],
},
schemaDefinitionFile: props?.schemaDirectory,
})
const lambdaRegister = new nodejs.NodejsFunction(this, 'register', {
functionName: 'register',
runtime: lambda.Runtime.NODEJS_12_X,
timeout: cdk.Duration.seconds(10),
entry: './lambda/register/register-0.ts',
handler: 'handler',
layers: [layer],
description: 'Register a user.',
})
const lambdaLogin = new nodejs.NodejsFunction(this, 'login', {
functionName: 'login',
runtime: lambda.Runtime.NODEJS_12_X,
timeout: cdk.Duration.seconds(10),
entry: './lambda/login/login-0.ts',
handler: 'handler',
layers: [layer],
description: 'Login a user.',
})
const lambdaRegisterDataSource = graphql.addLambdaDataSource(
'lambdaRegister',
'Register lambda triggered by appsync',
lambdaRegister
)
lambdaRegisterDataSource.createResolver({
typeName: 'Mutation',
fieldName: 'addUser',
requestMappingTemplate: appsync.MappingTemplate.lambdaRequest(),
responseMappingTemplate: appsync.MappingTemplate.lambdaResult(),
})
const lambdaLoginDataSource = graphql.addLambdaDataSource(
'lambdaLogin',
'Login lambda triggered by appsync',
lambdaLogin
)
lambdaLoginDataSource.createResolver({
typeName: 'Query',
fieldName: 'getUsers',
requestMappingTemplate: appsync.MappingTemplate.lambdaRequest(),
responseMappingTemplate: appsync.MappingTemplate.lambdaResult(),
})
Я получаю следующее сообщение об ошибке во время AWS::AppSync::GraphQLSchema
фаза развертывания:
GraphQLApi / Schema (GraphQLApiSchema5937B126) Статус создания схемы НЕ УКАЗАН с деталями: Внутренняя ошибка при сохранении схемы.
Кто-нибудь сталкивался с этой ошибкой раньше? Я подозреваю, что с моей схемой graphql что-то не так, но я не могу сказать, что это было. В другом ответе упоминалось, что зарезервированные слова DynamoDB в https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html могут вызвать конфликты, даже если вы не используете DynamoDB, поэтому я переименовал тип User
в AppSync
. Тем не менее, похоже, что Query
также является зарезервированным словом, но, насколько я понимаю, это также необходимо для определения graphql. Пожалуйста помоги. AWS CDK отстой.