How can I attach a resolver to a field in Appsync with SAM?

Author: peragethemteCreated Nov 18, 2024Updated Feb 3, 2026

I have a GraphQL schema with a query. The query uses a lambda resolver that connects to a REST API and fetches the data. I want to have the field TimeSchedules on the type AccessGroup to use a different resolver and I've managed to get this to work in the console but it doesn't seem to be possible with SAM.

Parts of schema:

type Query {
  getAccessGroup(site: ID!, id: ID!): AccessGroup
}

type AccessGroup {
  id: ID!
  customerReference: String!
  lockCount: Int!
  userCount: Int!
  TimeSchedules: TimeSchedulesResults
}

On the REST Api access groups have time schedules but they're two different calls, and as I don't always need the latter, I think it's better to have it like this.

In SAM, I've tried this:

  GraphQLVBVAAPI:
      Type: AWS::Serverless::GraphQLApi
      Properties:
        SchemaUri: ./graphql/schema.graphql
        Resolvers:                                                 
          Query:
            getAccessGroup:
              Runtime:
                Name: APPSYNC_JS
                Version: "1.0.0"
              Pipeline:
                - lambdaResolver  
            AccessGroup:
              Runtime:
                Name: APPSYNC_JS
                Version: "1.0.0"
              Pipeline:
                - lambdaResolver

But then I get an error saying

No field named AccessGroup found on type Query

This is quite easy in the Console where I can just attach a resolver to the spesific field itself.

Any suggestions?

Source: aws/serverless-application-model