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.
Minimal Example
Section titled “Minimal Example”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)"});
Advanced Configuration
Section titled “Advanced Configuration”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."});
Using S3 for Mapping Templates
Section titled “Using S3 for Mapping Templates”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"});
Incorporating Sync Configurations
Section titled “Incorporating Sync Configurations”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" }});