aws-cdk-lib.aws_appsync.OpenSearchDataSource

class OpenSearchDataSource (construct)

LanguageType name
.NETAmazon.CDK.AWS.AppSync.OpenSearchDataSource
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awsappsync#OpenSearchDataSource
Javasoftware.amazon.awscdk.services.appsync.OpenSearchDataSource
Pythonaws_cdk.aws_appsync.OpenSearchDataSource
TypeScript (source)aws-cdk-lib » aws_appsync » OpenSearchDataSource

Implements IConstruct, IDependable, IGrantable

An Appsync datasource backed by OpenSearch.

Example

import * as opensearch from 'aws-cdk-lib/aws-opensearchservice';

const user = new iam.User(this, 'User');
const domain = new opensearch.Domain(this, 'Domain', {
  version: opensearch.EngineVersion.OPENSEARCH_2_3,
  removalPolicy: RemovalPolicy.DESTROY,
  fineGrainedAccessControl: { masterUserArn: user.userArn },
  encryptionAtRest: { enabled: true },
  nodeToNodeEncryption: true,
  enforceHttps: true,
});

declare const api: appsync.GraphqlApi;
const ds = api.addOpenSearchDataSource('ds', domain);

ds.createResolver('QueryGetTestsResolver', {
  typeName: 'Query',
  fieldName: 'getTests',
  requestMappingTemplate: appsync.MappingTemplate.fromString(JSON.stringify({
    version: '2017-02-28',
    operation: 'GET',
    path: '/id/post/_search',
    params: {
      headers: {},
      queryString: {},
      body: { from: 0, size: 50 },
    },
  })),
  responseMappingTemplate: appsync.MappingTemplate.fromString(`[
    #foreach($entry in $context.result.hits.hits)
    #if( $velocityCount > 1 ) , #end
    $utils.toJson($entry.get("_source"))
    #end
  ]`),
});

Initializer

new OpenSearchDataSource(scope: Construct, id: string, props: OpenSearchDataSourceProps)

Parameters

  • scope Construct
  • id string
  • props OpenSearchDataSourceProps

Construct Props

NameTypeDescription
apiIGraphqlApiThe API to attach this data source to.
domainIDomainThe OpenSearch domain containing the endpoint for the data source.
description?stringthe description of the data source.
name?stringThe name of the data source.
serviceRole?IRoleThe IAM service role to be assumed by AppSync to interact with the data source.

api

Type: IGraphqlApi

The API to attach this data source to.


domain

Type: IDomain

The OpenSearch domain containing the endpoint for the data source.


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

NameTypeDescription
dsCfnDataSourcethe underlying CFN data source resource.
grantPrincipalIPrincipalthe principal of the data source to be IGrantable.
namestringthe name of the data source.
nodeNodeThe tree node.

ds

Type: CfnDataSource

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

NameDescription
createFunction(id, props)creates a new appsync function for this datasource and API using the given properties.
createResolver(id, props)creates a new resolver for this datasource and API using the given properties.
toString()Returns a string representation of this construct.

createFunction(id, props)

public createFunction(id: string, props: BaseAppsyncFunctionProps): AppsyncFunction

Parameters

  • id string
  • props BaseAppsyncFunctionProps

Returns

  • AppsyncFunction

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 BaseResolverProps

Returns

  • Resolver

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.