Skip to content
GitHubXDiscord

FunctionConfiguration

The FunctionConfiguration resource allows you to define and manage AWS AppSync FunctionConfigurations that are used to handle request and response mapping templates for AWS AppSync resolvers.

Create a basic FunctionConfiguration with required properties and a common optional property.

import AWS from "alchemy/aws/control";
const basicFunctionConfig = await AWS.AppSync.FunctionConfiguration("basicFunctionConfig", {
apiId: "myApiId",
name: "MyFunction",
dataSourceName: "myDataSource",
requestMappingTemplate: "{ \"version\": \"2018-05-29\", \"operation\": \"Query\" }",
responseMappingTemplate: "$util.toJson($ctx.result)"
});

Configure a FunctionConfiguration with additional options such as a maximum batch size and a description.

const advancedFunctionConfig = await AWS.AppSync.FunctionConfiguration("advancedFunctionConfig", {
apiId: "myApiId",
name: "AdvancedFunction",
dataSourceName: "myDataSource",
requestMappingTemplate: "{ \"version\": \"2018-05-29\", \"operation\": \"GetItem\" }",
responseMappingTemplate: "$util.toJson($ctx.result)",
maxBatchSize: 10,
description: "This function handles complex queries."
});

Demonstrate how to specify S3 locations for the request and response mapping templates.

const s3FunctionConfig = await AWS.AppSync.FunctionConfiguration("s3FunctionConfig", {
apiId: "myApiId",
name: "S3Function",
dataSourceName: "myDataSource",
requestMappingTemplateS3Location: "s3://my-bucket/request-mapping-template.vtl",
responseMappingTemplateS3Location: "s3://my-bucket/response-mapping-template.vtl"
});

Show how to include a sync configuration in the FunctionConfiguration.

const syncConfigFunctionConfig = await AWS.AppSync.FunctionConfiguration("syncConfigFunctionConfig", {
apiId: "myApiId",
name: "SyncConfigFunction",
dataSourceName: "myDataSource",
requestMappingTemplate: "{ \"version\": \"2018-05-29\", \"operation\": \"Query\" }",
responseMappingTemplate: "$util.toJson($ctx.result)",
syncConfig: {
conflictHandler: "AUTOMERGE",
conflictDetection: "VERSION"
}
});