DataSource
The DataSource resource allows you to manage AWS Kendra DataSources to ingest data from various sources into your Kendra index.
Minimal Example
Section titled “Minimal Example”Create a basic Kendra DataSource with required properties and a few optional ones.
import AWS from "alchemy/aws/control";
const kendraDataSource = await AWS.Kendra.DataSource("myDataSource", { Name: "MyDataSource", Type: "S3", IndexId: "my-kendra-index-id", RoleArn: "arn:aws:iam::123456789012:role/KendraDataSourceRole", Schedule: "cron(0 12 * * ? *)", // Run daily at noon UTC});
Advanced Configuration
Section titled “Advanced Configuration”Configure a Kendra DataSource with custom document enrichment and additional settings.
const advancedDataSource = await AWS.Kendra.DataSource("advancedDataSource", { Name: "AdvancedDataSource", Type: "S3", IndexId: "my-kendra-index-id", RoleArn: "arn:aws:iam::123456789012:role/KendraDataSourceRole", CustomDocumentEnrichmentConfiguration: { InlineConfigurations: [ { Condition: { DocumentAttributeKey: "customAttribute", DocumentAttributeValue: "value" }, DocumentLambdaFunctionArn: "arn:aws:lambda:us-west-2:123456789012:function:myLambdaFunction", } ] }, DataSourceConfiguration: { S3Configuration: { BucketName: "my-data-bucket", InclusionPrefixes: ["documents/"], ExclusionPatterns: ["*.tmp"], } }, LanguageCode: "en",});
Using Tags for Resource Management
Section titled “Using Tags for Resource Management”Add tags to your Kendra DataSource for better organization and management.
const taggedDataSource = await AWS.Kendra.DataSource("taggedDataSource", { Name: "TaggedDataSource", Type: "S3", IndexId: "my-kendra-index-id", RoleArn: "arn:aws:iam::123456789012:role/KendraDataSourceRole", Tags: [ { Key: "Project", Value: "KendraIntegration" }, { Key: "Environment", Value: "Production" } ]});
Handling Document Enrichment
Section titled “Handling Document Enrichment”Configure a DataSource with specific document enrichment settings to enhance search relevancy.
const enrichmentDataSource = await AWS.Kendra.DataSource("enrichmentDataSource", { Name: "EnrichmentDataSource", Type: "S3", IndexId: "my-kendra-index-id", RoleArn: "arn:aws:iam::123456789012:role/KendraDataSourceRole", CustomDocumentEnrichmentConfiguration: { InlineConfigurations: [ { Condition: { DocumentAttributeKey: "fileType", DocumentAttributeValue: "pdf" }, DocumentLambdaFunctionArn: "arn:aws:lambda:us-west-2:123456789012:function:pdfProcessor", }, { Condition: { DocumentAttributeKey: "fileType", DocumentAttributeValue: "docx" }, DocumentLambdaFunctionArn: "arn:aws:lambda:us-west-2:123456789012:function:docxProcessor", } ] },});