RdsDataSource

class aws_cdk.aws_appsync.RdsDataSource(scope, id, *, database_name=None, secret_store, serverless_cluster, service_role=None, api, description=None, name=None)

Bases: aws_cdk.aws_appsync.BackedDataSource

(experimental) An AppSync datasource backed by RDS.

Stability

experimental

Example:

# Build a data source for AppSync to access the database.
# api is of type GraphqlApi
# Create username and password secret for DB Cluster
secret = rds.DatabaseSecret(self, "AuroraSecret",
    username="clusteradmin"
)

# The VPC to place the cluster in
vpc = ec2.Vpc(self, "AuroraVpc")

# Create the serverless cluster, provide all values needed to customise the database.
cluster = rds.ServerlessCluster(self, "AuroraCluster",
    engine=rds.DatabaseClusterEngine.AURORA_MYSQL,
    vpc=vpc,
    credentials={"username": "clusteradmin"},
    cluster_identifier="db-endpoint-test",
    default_database_name="demos"
)
rds_dS = api.add_rds_data_source("rds", cluster, secret, "demos")

# Set up a resolver for an RDS query.
rds_dS.create_resolver(
    type_name="Query",
    field_name="getDemosRds",
    request_mapping_template=appsync.MappingTemplate.from_string("""
          {
            "version": "2018-05-29",
            "statements": [
              "SELECT * FROM demos"
            ]
          }
          """),
    response_mapping_template=appsync.MappingTemplate.from_string("""
            $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])
          """)
)

# Set up a resolver for an RDS mutation.
rds_dS.create_resolver(
    type_name="Mutation",
    field_name="addDemoRds",
    request_mapping_template=appsync.MappingTemplate.from_string("""
          {
            "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)
            }
          }
          """),
    response_mapping_template=appsync.MappingTemplate.from_string("""
            $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])
          """)
)
Parameters
  • scope (Construct) –

  • id (str) –

  • database_name (Optional[str]) – (experimental) The name of the database to use within the cluster. Default: - None

  • secret_store (ISecret) – (experimental) The secret containing the credentials for the database.

  • serverless_cluster (IServerlessCluster) – (experimental) The serverless cluster to call to interact with this data source.

  • service_role (Optional[IRole]) – (experimental) The IAM service role to be assumed by AppSync to interact with the data source. Default: - Create a new role

  • api (IGraphqlApi) – (experimental) The API to attach this data source to.

  • description (Optional[str]) – (experimental) the description of the data source. Default: - None

  • name (Optional[str]) – (experimental) The name of the data source. Default: - id of data source

Stability

experimental

Methods

create_function(*, description=None, name, request_mapping_template=None, response_mapping_template=None)

(experimental) creates a new appsync function for this datasource and API using the given properties.

Parameters
  • description (Optional[str]) – (experimental) the description for this AppSync Function. Default: - no description

  • name (str) – (experimental) the name of the AppSync Function.

  • request_mapping_template (Optional[MappingTemplate]) – (experimental) the request mapping template for the AppSync Function. Default: - no request mapping template

  • response_mapping_template (Optional[MappingTemplate]) – (experimental) the response mapping template for the AppSync Function. Default: - no response mapping template

Stability

experimental

Return type

AppsyncFunction

create_resolver(*, field_name, pipeline_config=None, request_mapping_template=None, response_mapping_template=None, type_name)

(experimental) creates a new resolver for this datasource and API using the given properties.

Parameters
  • field_name (str) – (experimental) name of the GraphQL field in the given type this resolver is attached to.

  • pipeline_config (Optional[Sequence[IAppsyncFunction]]) – (experimental) configuration of the pipeline resolver. Default: - no pipeline resolver configuration An empty array | undefined sets resolver to be of kind, unit

  • request_mapping_template (Optional[MappingTemplate]) – (experimental) The request mapping template for this resolver. Default: - No mapping template

  • response_mapping_template (Optional[MappingTemplate]) – (experimental) The response mapping template for this resolver. Default: - No mapping template

  • type_name (str) – (experimental) name of the GraphQL type this resolver is attached to.

Stability

experimental

Return type

Resolver

to_string()

Returns a string representation of this construct.

Return type

str

Attributes

ds

(experimental) the underlying CFN data source resource.

Stability

experimental

Return type

CfnDataSource

grant_principal

(experimental) the principal of the data source to be IGrantable.

Stability

experimental

Return type

IPrincipal

name

(experimental) the name of the data source.

Stability

experimental

Return type

str

node

The construct tree node associated with this construct.

Return type

ConstructNode

Static Methods

classmethod is_construct(x)

Return whether the given object is a Construct.

Parameters

x (Any) –

Return type

bool