class OpenSearchDataSource (construct)
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.AppSync.OpenSearchDataSource |
Go | github.com/aws/aws-cdk-go/awscdk/v2/awsappsync#OpenSearchDataSource |
Java | software.amazon.awscdk.services.appsync.OpenSearchDataSource |
Python | aws_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
Open
Search Data Source Props
Construct Props
Name | Type | Description |
---|---|---|
api | IGraphql | The API to attach this data source to. |
domain | IDomain | The OpenSearch domain containing the endpoint for the data source. |
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.
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
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. |
Function(id, props)
createpublic 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.
Resolver(id, props)
createpublic 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.
String()
topublic toString(): string
Returns
string
Returns a string representation of this construct.