class RdsDataSource (construct)
Language | Type name |
---|---|
![]() | Amazon.CDK.AWS.AppSync.RdsDataSource |
![]() | github.com/aws/aws-cdk-go/awscdk/v2/awsappsync#RdsDataSource |
![]() | software.amazon.awscdk.services.appsync.RdsDataSource |
![]() | aws_cdk.aws_appsync.RdsDataSource |
![]() | aws-cdk-lib » aws_appsync » RdsDataSource |
Implements
IConstruct
, IDependable
, IGrantable
An AppSync datasource backed by RDS.
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 RdsDataSource(scope: Construct, id: string, props: RdsDataSourceProps)
Parameters
- scope
Construct
- id
string
- props
Rds
Data Source Props
Construct Props
Name | Type | Description |
---|---|---|
api | IGraphql | The API to attach this data source to. |
secret | ISecret | The secret containing the credentials for the database. |
serverless | IServerless | The serverless cluster to call to interact with this data source. |
database | string | The name of the database to use within the cluster. |
description? | string | the description of the data source. |
name? | string | The name of the data source. |
service | IRole | The IAM service role to be assumed by AppSync to interact with the data source. |
api
Type:
IGraphql
The API to attach this data source to.
secretStore
Type:
ISecret
The secret containing the credentials for the database.
serverlessCluster
Type:
IServerless
The serverless cluster to call to interact with this data source.
databaseName?
Type:
string
(optional, default: None)
The name of the database to use within the cluster.
description?
Type:
string
(optional, default: None)
the description of the data source.
name?
Type:
string
(optional, default: id of data source)
The name of the data source.
serviceRole?
Type:
IRole
(optional, default: Create a new role)
The IAM service role to be assumed by AppSync to interact with the data source.
Properties
Name | Type | Description |
---|---|---|
ds | Cfn | the underlying CFN data source resource. |
grant | IPrincipal | the principal of the data source to be IGrantable. |
name | string | the name of the data source. |
node | Node | The tree node. |
ds
Type:
Cfn
the underlying CFN data source resource.
grantPrincipal
Type:
IPrincipal
the principal of the data source to be IGrantable.
name
Type:
string
the name of the data source.
node
Type:
Node
The tree node.
Methods
Name | Description |
---|---|
create | creates a new appsync function for this datasource and API using the given properties. |
create | creates a new resolver for this datasource and API using the given properties. |
to | Returns a string representation of this construct. |
createFunction(id, props)
public createFunction(id: string, props: BaseAppsyncFunctionProps): AppsyncFunction
Parameters
- id
string
- props
Base
Appsync Function Props
Returns
creates a new appsync function for this datasource and API using the given properties.
createResolver(id, props)
public createResolver(id: string, props: BaseResolverProps): Resolver
Parameters
- id
string
- props
Base
Resolver Props
Returns
creates a new resolver for this datasource and API using the given properties.
toString()
public toString(): string
Returns
string
Returns a string representation of this construct.