AWS CloudFormation
User Guide (Version )

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.

AWS::AppSync::Resolver

The AWS::AppSync::Resolver resource defines the logical GraphQL resolver that you attach to fields in a schema. Request and response templates for resolvers are written in Apache Velocity Template Language (VTL) format. For more information about resolvers, see Resolver Mapping Template Reference.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::AppSync::Resolver", "Properties" : { "ApiId" : String, "DataSourceName" : String, "FieldName" : String, "Kind" : String, "PipelineConfig" : PipelineConfig, "RequestMappingTemplate" : String, "RequestMappingTemplateS3Location" : String, "ResponseMappingTemplate" : String, "ResponseMappingTemplateS3Location" : String, "TypeName" : String } }

YAML

Type: AWS::AppSync::Resolver Properties: ApiId: String DataSourceName: String FieldName: String Kind: String PipelineConfig: PipelineConfig RequestMappingTemplate: String RequestMappingTemplateS3Location: String ResponseMappingTemplate: String ResponseMappingTemplateS3Location: String TypeName: String

Properties

ApiId

The AWS AppSync GraphQL API to which you want to attach this resolver.

Required: Yes

Type: String

Update requires: Replacement

DataSourceName

The resolver data source name.

Required: No

Type: String

Update requires: No interruption

FieldName

The GraphQL field on a type that invokes the resolver.

Required: Yes

Type: String

Update requires: Replacement

Kind

The resolver type.

  • UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source.

  • PIPELINE: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of Function in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources.

Required: No

Type: String

Update requires: No interruption

PipelineConfig

Functions linked with the pipeline resolver.

Required: No

Type: PipelineConfig

Update requires: No interruption

RequestMappingTemplate

The request mapping template.

Required: No

Type: String

Update requires: No interruption

RequestMappingTemplateS3Location

The location of a request mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template.

Required: No

Type: String

Update requires: No interruption

ResponseMappingTemplate

The response mapping template.

Required: No

Type: String

Update requires: No interruption

ResponseMappingTemplateS3Location

The location of a response mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template.

Required: No

Type: String

Update requires: No interruption

TypeName

The GraphQL type that invokes this resolver.

Required: Yes

Type: String

Update requires: Replacement

Return Values

Ref

When you pass the logical ID of an AWS::AppSync::Resolver resource to the intrinsic Ref function, the function returns the ARN of the Resolver, such as arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/types/typename/resolvers/resolvername.

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using Fn::GetAtt, see Fn::GetAtt.

FieldName

The GraphQL field on a type that invokes the resolver.

ResolverArn

ARN of the resolver, such as arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/types/typename/resolvers/resolvername.

TypeName

The GraphQL type that invokes this resolver.

Examples

Resolver Creation Example

The following example creates a resolver and associates it with an existing GraphQL API and a data source by passing the GraphQL API ID and data source name as a parameter.

YAML

Parameters: graphQlApiId: Type: String dataSourceName: Type: String fieldName: Type: String typeName: Type: String requestMappingTemplateS3LocationInput: Type: String responseMappingTemplateS3LocationInput: Type: String Resources: Resolver: Type: AWS::AppSync::Resolver Properties: ApiId: Ref: graphQlApiId TypeName: Ref: typeName FieldName: Ref: fieldName DataSourceName: Ref: dataSourceName RequestMappingTemplateS3Location: Ref: requestMappingTemplateS3LocationInput ResponseMappingTemplateS3Location: Ref: responseMappingTemplateS3LocationInput

JSON

{ "Parameters": { "graphQlApiId": { "Type": "String" }, "dataSourceName": { "Type": "String" }, "fieldName": { "Type": "String" }, "typeName": { "Type": "String" }, "requestMappingTemplateS3LocationInput": { "Type": "String" }, "responseMappingTemplateS3LocationInput": { "Type": "String" } }, "Resources": { "Resolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { "Ref": "graphQlApiId" }, "TypeName": { "Ref": "typeName" }, "FieldName": { "Ref": "fieldName" }, "DataSourceName": { "Ref": "dataSourceName" }, "RequestMappingTemplateS3Location": { "Ref": "requestMappingTemplateS3LocationInput" }, "ResponseMappingTemplateS3Location": { "Ref": "responseMappingTemplateS3LocationInput" } } } } }

See Also