Skip to content
v2.275.0

MappingTemplate Class ​

MappingTemplates for AppSync resolvers.

Example ​

ts
// Create username and password secret for DB Cluster
const secret = new rds.DatabaseSecret(this, 'AuroraSecret', {
  username: 'clusteradmin',
});

// The VPC to place the cluster in
const vpc = new ec2.Vpc(this, 'AuroraVpc');

// Create the serverless cluster, provide all values needed to customise the database.
const cluster = new rds.ServerlessCluster(this, 'AuroraCluster', {
  engine: rds.DatabaseClusterEngine.AURORA_MYSQL,
  vpc,
  credentials: { username: 'clusteradmin' },
  clusterIdentifier: 'db-endpoint-test',
  defaultDatabaseName: 'demos',
});

// Build a data source for AppSync to access the database.
declare const api: appsync.GraphqlApi;
const rdsDS = api.addRdsDataSource('rds', cluster, secret, 'demos');

// Set up a resolver for an RDS query.
rdsDS.createResolver('QueryGetDemosRdsResolver', {
  typeName: 'Query',
  fieldName: 'getDemosRds',
  requestMappingTemplate: appsync.MappingTemplate.fromString(`
  {
    "version": "2018-05-29",
    "statements": [
      "SELECT * FROM demos"
    ]
  }
  `),
  responseMappingTemplate: appsync.MappingTemplate.fromString(`
    $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])
  `),
});

// Set up a resolver for an RDS mutation.
rdsDS.createResolver('MutationAddDemoRdsResolver', {
  typeName: 'Mutation',
  fieldName: 'addDemoRds',
  requestMappingTemplate: appsync.MappingTemplate.fromString(`
  {
    "version": "2018-05-29",
    "statements": [
      "INSERT INTO demos VALUES (:id, :version)",
      "SELECT * WHERE id = :id"
    ],
    "variableMap": {
      ":id": $util.toJson($util.autoId()),
      ":version": $util.toJson($ctx.args.version)
    }
  }
  `),
  responseMappingTemplate: appsync.MappingTemplate.fromString(`
    $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])
  `),
});

Initializer ​

ts
new MappingTemplate()
python
MappingTemplate()
java
new MappingTemplate()
csharp
new MappingTemplate()
go
NewMappingTemplate()

Methods ​

dynamoDbDeleteItem(keyName: string, idArg: string): MappingTemplate // chainable@staticmethod def dynamo_db_delete_item(key_name: str, id_arg: str) -> MappingTemplatepublic static MappingTemplate dynamoDbDeleteItem(String keyName, String idArg)public static MappingTemplate DynamoDbDeleteItem(string keyName, string idArg)func DynamoDbDeleteItem(KeyName *string, IdArg *string) MappingTemplatestatic#
Mapping template to delete a single item from a DynamoDB table.
2 parameters

Parameters

  • keyNamekey_namekeyNamekeyNameKeyName — the name of the hash key field.
  • idArgid_argidArgidArgIdArg — the name of the Mutation argument.
dynamoDbGetItem(keyName: string, idArg: string, consistentRead?: boolean): MappingTemplate // chainable@staticmethod def dynamo_db_get_item(key_name: str, id_arg: str, consistent_read: typing.Optional[bool] = None) -> MappingTemplatepublic static MappingTemplate dynamoDbGetItem(String keyName, String idArg, Boolean consistentRead)public static MappingTemplate DynamoDbGetItem(string keyName, string idArg, bool? consistentRead = null)func DynamoDbGetItem(KeyName *string, IdArg *string, ConsistentRead *bool) MappingTemplatestatic#
Mapping template to get a single item from a DynamoDB table.
2 parameters

Parameters

  • keyNamekey_namekeyNamekeyNameKeyName — the name of the hash key field.
  • idArgid_argidArgidArgIdArg — the name of the Query argument.
dynamoDbPutItem(key: PrimaryKey, values: AttributeValues): MappingTemplate // chainable@staticmethod def dynamo_db_put_item(key: PrimaryKey, values: AttributeValues) -> MappingTemplatepublic static MappingTemplate dynamoDbPutItem(PrimaryKey key, AttributeValues values)public static MappingTemplate DynamoDbPutItem(PrimaryKey key, AttributeValues values)func DynamoDbPutItem(Key PrimaryKey, Values AttributeValues) MappingTemplatestatic#
Mapping template to save a single item to a DynamoDB table.
2 parameters

Parameters

  • keykeykeykeyKey — the assigment of Mutation values to the primary key.
  • valuesvaluesvaluesvaluesValues — the assignment of Mutation values to the table attributes.
dynamoDbQuery(cond: KeyCondition, indexName?: string, consistentRead?: boolean): MappingTemplate // chainable@staticmethod def dynamo_db_query(cond: KeyCondition, index_name: typing.Optional[str] = None, consistent_read: typing.Optional[bool] = None) -> MappingTemplatepublic static MappingTemplate dynamoDbQuery(KeyCondition cond, String indexName, Boolean consistentRead)public static MappingTemplate DynamoDbQuery(KeyCondition cond, string? indexName = null, bool? consistentRead = null)func DynamoDbQuery(Cond KeyCondition, IndexName *string, ConsistentRead *bool) MappingTemplatestatic#
Mapping template to query a set of items from a DynamoDB table.
1 parameter

Parameters

  • condcondcondcondCond — the key condition for the query.
dynamoDbResultItem(): MappingTemplate // chainable@staticmethod def dynamo_db_result_item() -> MappingTemplatepublic static MappingTemplate dynamoDbResultItem()public static MappingTemplate DynamoDbResultItem()func DynamoDbResultItem() MappingTemplatestatic#
Mapping template for a single result item from DynamoDB.
dynamoDbResultList(): MappingTemplate // chainable@staticmethod def dynamo_db_result_list() -> MappingTemplatepublic static MappingTemplate dynamoDbResultList()public static MappingTemplate DynamoDbResultList()func DynamoDbResultList() MappingTemplatestatic#
Mapping template for a result list from DynamoDB.
dynamoDbScanTable(consistentRead?: boolean): MappingTemplate // chainable@staticmethod def dynamo_db_scan_table(consistent_read: typing.Optional[bool] = None) -> MappingTemplatepublic static MappingTemplate dynamoDbScanTable(Boolean consistentRead)public static MappingTemplate DynamoDbScanTable(bool? consistentRead = null)func DynamoDbScanTable(ConsistentRead *bool) MappingTemplatestatic#
Mapping template to scan a DynamoDB table to fetch all entries.
fromFile(fileName: string): MappingTemplate // chainable@staticmethod def from_file(file_name: str) -> MappingTemplatepublic static MappingTemplate fromFile(String fileName)public static MappingTemplate FromFile(string fileName)func FromFile(FileName *string) MappingTemplatestatic#
Create a mapping template from the given file.
fromString(template: string): MappingTemplate // chainable@staticmethod def from_string(template: str) -> MappingTemplatepublic static MappingTemplate fromString(String template)public static MappingTemplate FromString(string template)func FromString(Template *string) MappingTemplatestatic#
Create a mapping template from the given string.
lambdaRequest(payload?: string, operation?: string): MappingTemplate // chainable@staticmethod def lambda_request(payload: typing.Optional[str] = None, operation: typing.Optional[str] = None) -> MappingTemplatepublic static MappingTemplate lambdaRequest(String payload, String operation)public static MappingTemplate LambdaRequest(string? payload = null, string? operation = null)func LambdaRequest(Payload *string, Operation *string) MappingTemplatestatic#
Mapping template to invoke a Lambda function.
2 parameters

Parameters

  • payloadpayloadpayloadpayloadPayload — the VTL template snippet of the payload to send to the lambda.
  • operationoperationoperationoperationOperation — the type of operation AppSync should perform on the data source.
lambdaResult(): MappingTemplate // chainable@staticmethod def lambda_result() -> MappingTemplatepublic static MappingTemplate lambdaResult()public static MappingTemplate LambdaResult()func LambdaResult() MappingTemplatestatic#
Mapping template to return the Lambda result to the caller.
renderTemplate(): stringdef render_template(self, ) -> strpublic String renderTemplate()public string RenderTemplate()func RenderTemplate() *string#
this is called to render the mapping template to a VTL string.