class MappingTemplate
Language | Type name |
---|---|
![]() | Amazon.CDK.AWS.AppSync.MappingTemplate |
![]() | github.com/aws/aws-cdk-go/awscdk/v2/awsappsync#MappingTemplate |
![]() | software.amazon.awscdk.services.appsync.MappingTemplate |
![]() | aws_cdk.aws_appsync.MappingTemplate |
![]() | aws-cdk-lib » aws_appsync » MappingTemplate |
MappingTemplates for AppSync resolvers.
Example
// 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
new MappingTemplate()
Methods
Name | Description |
---|---|
render | this is called to render the mapping template to a VTL string. |
static dynamo | Mapping template to delete a single item from a DynamoDB table. |
static dynamo | Mapping template to get a single item from a DynamoDB table. |
static dynamo | Mapping template to save a single item to a DynamoDB table. |
static dynamo | Mapping template to query a set of items from a DynamoDB table. |
static dynamo | Mapping template for a single result item from DynamoDB. |
static dynamo | Mapping template for a result list from DynamoDB. |
static dynamo | Mapping template to scan a DynamoDB table to fetch all entries. |
static from | Create a mapping template from the given file. |
static from | Create a mapping template from the given string. |
static lambda | Mapping template to invoke a Lambda function. |
static lambda | Mapping template to return the Lambda result to the caller. |
renderTemplate()
public renderTemplate(): string
Returns
string
this is called to render the mapping template to a VTL string.
static dynamoDbDeleteItem(keyName, idArg)
public static dynamoDbDeleteItem(keyName: string, idArg: string): MappingTemplate
Parameters
- keyName
string
— the name of the hash key field. - idArg
string
— the name of the Mutation argument.
Returns
Mapping template to delete a single item from a DynamoDB table.
static dynamoDbGetItem(keyName, idArg, consistentRead?)
public static dynamoDbGetItem(keyName: string, idArg: string, consistentRead?: boolean): MappingTemplate
Parameters
- keyName
string
— the name of the hash key field. - idArg
string
— the name of the Query argument. - consistentRead
boolean
Returns
Mapping template to get a single item from a DynamoDB table.
static dynamoDbPutItem(key, values)
public static dynamoDbPutItem(key: PrimaryKey, values: AttributeValues): MappingTemplate
Parameters
- key
Primary
— the assigment of Mutation values to the primary key.Key - values
Attribute
— the assignment of Mutation values to the table attributes.Values
Returns
Mapping template to save a single item to a DynamoDB table.
static dynamoDbQuery(cond, indexName?, consistentRead?)
public static dynamoDbQuery(cond: KeyCondition, indexName?: string, consistentRead?: boolean): MappingTemplate
Parameters
- cond
Key
— the key condition for the query.Condition - indexName
string
- consistentRead
boolean
Returns
Mapping template to query a set of items from a DynamoDB table.
static dynamoDbResultItem()
public static dynamoDbResultItem(): MappingTemplate
Returns
Mapping template for a single result item from DynamoDB.
static dynamoDbResultList()
public static dynamoDbResultList(): MappingTemplate
Returns
Mapping template for a result list from DynamoDB.
static dynamoDbScanTable(consistentRead?)
public static dynamoDbScanTable(consistentRead?: boolean): MappingTemplate
Parameters
- consistentRead
boolean
Returns
Mapping template to scan a DynamoDB table to fetch all entries.
static fromFile(fileName)
public static fromFile(fileName: string): MappingTemplate
Parameters
- fileName
string
Returns
Create a mapping template from the given file.
static fromString(template)
public static fromString(template: string): MappingTemplate
Parameters
- template
string
Returns
Create a mapping template from the given string.
static lambdaRequest(payload?, operation?)
public static lambdaRequest(payload?: string, operation?: string): MappingTemplate
Parameters
- payload
string
— the VTL template snippet of the payload to send to the lambda. - operation
string
— the type of operation AppSync should perform on the data source.
Returns
Mapping template to invoke a Lambda function.
static lambdaResult()
public static lambdaResult(): MappingTemplate
Returns
Mapping template to return the Lambda result to the caller.