aws-lambda-kendra
| Reference Documentation: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
| Language | Package |
|---|---|
|
|
|
|
|
|
|
|
|
Overview
This AWS Solutions Construct implements an AWS Lambda function and Amazon Kendra index with the least privileged permissions.
Here is a minimal deployable pattern definition:
Example
Pattern Construct Props
| Name | Type | Description |
|---|---|---|
|
existingLambdaObj? |
Optional - instance of an existing Lambda Function object, providing both this and
|
|
|
lambdaFunctionProps? |
Optional - user provided props to override the default props for the Lambda function. Providing both this and |
|
|
kendraIndexProps? |
Optional user provided props to override the default props for the Kendra index. Providing both these and existingKendraIndexObj is an error. |
|
|
kendraDataSourcesProps |
A list of data sources that will provide data to the Kendra index. At least 1 must be specified. We will do majority of processing for some data sources (S3 crawler initially), but for others the props must be complete (e.g. proper roleArn, etc.) |
|
|
indexPermissions? |
|
Optional - index permissions to
grant to the Lambda function. One or more of the following may be
specified: |
|
existingKendraIndexObj? |
An existing Kendra index to which the Lambda function will be granted access. Supplying along with kendraIndexProps or kendraDataSourceProps will throw an error. |
|
|
existingVpc? |
An optional, existing VPC into which this pattern should be deployed.
When deployed in a VPC, the Lambda function will use ENIs in the VPC to
access network resources. If an existing VPC is provided, the
|
|
|
vpcProps? |
Optional user provided properties to override the default properties
for the new VPC. |
|
|
deployVpc? |
|
Whether to create a new VPC based on |
Pattern Properties
| Name | Type | Description |
|---|---|---|
|
lambdaFunction |
Returns an instance of |
|
|
kendraIndex |
Returns an instance of |
|
|
kendraDataSources |
DataSourceProperties[] (this interface is defined by Solutions Constructs and described below) |
A list of data sources created for this construct/index, each in an object that includes the role for that data source. |
|
lambdaRole |
The role assumed by the Lambda function |
|
|
vpc? |
Returns an interface on the VPC used by the pattern (if any). This may be a VPC created by the pattern or the VPC supplied to the pattern constructor. |
interface DataSourceProperties { role?:
iam.Role,
source: |
CfnDataSource
} ## Lambda Function
This pattern requires a lambda function that can access a Kendra index.
Default settings
Out of the box implementation of the Construct without any overrides will set the following defaults:
AWS Lambda Function
-
Configure limited privilege access IAM role for Lambda function
-
Enable reusing connections with Keep-Alive for Node.js Lambda function
-
Enable X-Ray Tracing
-
Set Environment Variables
-
(default) KENDRA_INDEX_ID
-
AWS_NODEJS_CONNECTION_REUSE_ENABLED
-
Amazon Kendra Index
-
Creates Amazon Kendra endpoint in VPC if appropriate
-
Defaults to DEVELOPER_EDITION
Amazon Kendra DataSources
-
Sets up correct IAM roles to access data for:
-
S3 data sources
-
Which others should we support in MLP? https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html
-
-
Adds each data source to Kendra index
Architecture
Github
Go to the Github repo