class DynamoDbDataSource (construct)
| Language | Type name |
|---|---|
.NET | Amazon.CDK.AWS.AppSync.DynamoDbDataSource |
Go | github.com/aws/aws-cdk-go/awscdk/v2/awsappsync#DynamoDbDataSource |
Java | software.amazon.awscdk.services.appsync.DynamoDbDataSource |
Python | aws_cdk.aws_appsync.DynamoDbDataSource |
TypeScript (source) | aws-cdk-lib » aws_appsync » DynamoDbDataSource |
Implements
IConstruct, IDependable, IGrantable
An AppSync datasource backed by a DynamoDB table.
Example
const api = new appsync.GraphqlApi(this, 'Api', {
name: 'demo',
definition: appsync.Definition.fromFile(path.join(__dirname, 'schema.graphql')),
authorizationConfig: {
defaultAuthorization: {
authorizationType: appsync.AuthorizationType.IAM,
},
},
xrayEnabled: true,
});
const demoTable = new dynamodb.Table(this, 'DemoTable', {
partitionKey: {
name: 'id',
type: dynamodb.AttributeType.STRING,
},
});
const demoDS = api.addDynamoDbDataSource('demoDataSource', demoTable);
// Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list.
// Resolver Mapping Template Reference:
// https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html
demoDS.createResolver('QueryGetDemosResolver', {
typeName: 'Query',
fieldName: 'getDemos',
requestMappingTemplate: appsync.MappingTemplate.dynamoDbScanTable(),
responseMappingTemplate: appsync.MappingTemplate.dynamoDbResultList(),
});
// Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table.
demoDS.createResolver('MutationAddDemoResolver', {
typeName: 'Mutation',
fieldName: 'addDemo',
requestMappingTemplate: appsync.MappingTemplate.dynamoDbPutItem(
appsync.PrimaryKey.partition('id').auto(),
appsync.Values.projecting('input'),
),
responseMappingTemplate: appsync.MappingTemplate.dynamoDbResultItem(),
});
//To enable DynamoDB read consistency with the `MappingTemplate`:
demoDS.createResolver('QueryGetDemosConsistentResolver', {
typeName: 'Query',
fieldName: 'getDemosConsistent',
requestMappingTemplate: appsync.MappingTemplate.dynamoDbScanTable(true),
responseMappingTemplate: appsync.MappingTemplate.dynamoDbResultList(),
});
Initializer
new DynamoDbDataSource(scope: Construct, id: string, props: DynamoDbDataSourceProps)
Parameters
- scope
Construct - id
string - props
DynamoDb Data Source Props
Construct Props
| Name | Type | Description |
|---|---|---|
| api | IGraph | The API to attach this data source to. |
| table | ITable | The DynamoDB table backing this data source. |
| description? | string | the description of the data source. |
| metrics | Data | Whether to enable enhanced metrics of the data source Value will be ignored, if enhancedMetricsConfig.dataSourceLevelMetricsBehavior on AppSync GraphqlApi construct is set to FULL_REQUEST_DATA_SOURCE_METRICS. |
| name? | string | The name of the data source. |
| read | boolean | Specify whether this DS is read only or has read and write permissions to the DynamoDB table. |
| service | IRole | The IAM service role to be assumed by AppSync to interact with the data source. |
| use | boolean | use credentials of caller to access DynamoDB. |
api
Type:
IGraph
The API to attach this data source to.
table
Type:
ITable
The DynamoDB table backing this data source.
description?
Type:
string
(optional, default: None)
the description of the data source.
metricsConfig?
Type:
Data
(optional, default: no metrics configuration)
Whether to enable enhanced metrics of the data source Value will be ignored, if enhancedMetricsConfig.dataSourceLevelMetricsBehavior on AppSync GraphqlApi construct is set to FULL_REQUEST_DATA_SOURCE_METRICS.
name?
Type:
string
(optional, default: id of data source)
The name of the data source.
readOnlyAccess?
Type:
boolean
(optional, default: false)
Specify whether this DS is read only or has read and write permissions to the DynamoDB table.
serviceRole?
Type:
IRole
(optional, default: Create a new role)
The IAM service role to be assumed by AppSync to interact with the data source.
useCallerCredentials?
Type:
boolean
(optional, default: false)
use credentials of caller to access DynamoDB.
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. |
| static PROPERTY_INJECTION_ID | string | Uniquely identifies this class. |
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.
static PROPERTY_INJECTION_ID
Type:
string
Uniquely identifies this class.
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. |
| with(...mixins) | Applies one or more mixins to this construct. |
createFunction(id, props)
public createFunction(id: string, props: BaseAppsyncFunctionProps): AppsyncFunction
Parameters
- id
string - props
BaseAppsync 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
BaseResolver 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.
with(...mixins)
public with(...mixins: IMixin[]): IConstruct
Parameters
- mixins
IMixin— The mixins to apply.
Returns
Applies one or more mixins to this construct.
Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple with() calls if subsequent mixins should apply to added
constructs.

.NET
Go
Java
Python
TypeScript (