From e0a50e9a086b26ba950dc61bb95db1a85173ebf6 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Thu, 26 Sep 2024 03:56:21 +0000 Subject: [PATCH 01/33] feat: llama index data loader construct --- src/common/base-class/construct-name-enum.ts | 3 +- .../aws-llama-index-data-loader/index.ts | 444 ++++++++++++++++++ 2 files changed, 446 insertions(+), 1 deletion(-) create mode 100644 src/patterns/gen-ai/aws-llama-index-data-loader/index.ts diff --git a/src/common/base-class/construct-name-enum.ts b/src/common/base-class/construct-name-enum.ts index 908e2122..3c7d3ab5 100644 --- a/src/common/base-class/construct-name-enum.ts +++ b/src/common/base-class/construct-name-enum.ts @@ -21,5 +21,6 @@ export enum ConstructName { AWSCONTENTGENAPPSYNCLAMBDA = 'C8', AWSRAGAPPSYNCSTEPFNKENDRA = 'C9', AWSWEBCRAWLER = 'C10', - AWSTEXTTOSQL= 'C11' + AWSTEXTTOSQL= 'C11', + AWSLLAMAINDEXDATALOADER = 'C12', } diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts new file mode 100644 index 00000000..49b15d8d --- /dev/null +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -0,0 +1,444 @@ +import { Construct, } from 'constructs'; +import { Duration, RemovalPolicy, Stack, } from 'aws-cdk-lib'; +import { DockerImageAsset, } from 'aws-cdk-lib/aws-ecr-assets'; +import { FlowLogDestination } from 'aws-cdk-lib/aws-ec2'; +import { Cluster, ContainerImage, } from 'aws-cdk-lib/aws-ecs'; +import { Effect, PolicyStatement, ServicePrincipal, } from 'aws-cdk-lib/aws-iam'; +import { Key } from "aws-cdk-lib/aws-kms"; +import { BlockPublicAccess, Bucket, BucketEncryption, EventType, ObjectLockMode, } from 'aws-cdk-lib/aws-s3'; +import { Topic, } from 'aws-cdk-lib/aws-sns'; +import { Queue, } from 'aws-cdk-lib/aws-sqs'; +import { QueueProcessingFargateService } from 'aws-cdk-lib/aws-ecs-patterns'; +import { SnsDestination } from 'aws-cdk-lib/aws-s3-notifications' +import { SqsSubscription, } from 'aws-cdk-lib/aws-sns-subscriptions'; +import { StringParameter } from 'aws-cdk-lib/aws-ssm'; +import { NagSuppressions } from 'cdk-nag'; +import { BaseClass, BaseClassProps, ConstructName } from '../../../common/base-class'; + +export interface LlamaIndexDataLoaderProps { + /** + * The directory to build the Docker image + * @description The directory to build the Docker image. + */ + readonly dockerImageAssetDirectory: string; + + /** + * The default memory + * @description The default memory. + * @default 2048 + */ + readonly memoryLimitMiB: number; + + /** + * @description the container's logging level + * @default 'WARNING' + */ + readonly containerLoggingLevel: string; + + /** + * Value will be appended to resources name. + * + * @default - _dev + */ + readonly stage?: string; + /** + * Enable observability. Warning: associated cost with the services + * used. Best practive to enable by default. + * + * @default - true + */ + readonly observability?: boolean; + +} + +export class LlamaIndexDataLoader extends BaseClass { + + public readonly s3Bucket?: Bucket; + public readonly snsTopic: Topic; + public readonly sqsQueue: Queue; + public readonly ssmParameter: StringParameter; + public readonly outputBucket: Bucket; + + constructor(scope: Construct, id: string, props: LlamaIndexDataLoaderProps) { + super(scope, id); + + const baseProps: BaseClassProps = { + stage: props.stage, + constructName: ConstructName.AWSLLAMAINDEXDATALOADER, + constructId: id, + observability: props.observability, + } + + this.updateEnvSuffix(baseProps); + this.addObservabilityToConstruct(baseProps); + + + const bucketKey = new Key(this, 'LogBucketKey', { + enableKeyRotation: true, + }) + const logBucket = new Bucket(this, 'LogBucket', { + enforceSSL: true, + versioned: true, + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + }); + const rawBucket = new Bucket(this, 'Raw', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: logBucket, + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + serverAccessLogsPrefix: 'raw-bucket-access-logs', + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + this.s3Bucket = rawBucket; + + const topicKey = new Key(this, 'TopicKey', { + enableKeyRotation: true, + }); + const topic = new Topic(this, 'Topic', { + enforceSSL: true, + masterKey: topicKey, + }); + this.snsTopic = topic; + topicKey.addToResourcePolicy( + new PolicyStatement({ + actions: ['kms:Decrypt', 'kms:GenerateDataKey*'], + resources: ['*'], + principals: [new ServicePrincipal('s3.amazonaws.com')], + }), + ); + topic.grantPublish(new ServicePrincipal('s3.amazonaws.com')); + rawBucket.addEventNotification( + EventType.OBJECT_CREATED, + new SnsDestination(topic), + ); + + const queue = new Queue(this, 'Queue', { + visibilityTimeout: Duration.seconds(300), + enforceSSL: true, + deadLetterQueue: { + maxReceiveCount: 3, + queue: new Queue(this, 'DeadLetterQueue', { + enforceSSL: true, + }), + }, + }); + this.sqsQueue = queue; + + topic.addSubscription( + new SqsSubscription(queue), + ); + + // Create a new SSM Parameter holding a String + const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { + stringValue: 'False', + }); + this.ssmParameter = circuitBreakerParameter; + + const outputBucket = new Bucket(this, 'Output', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: logBucket, + serverAccessLogsPrefix: 'output-bucket-access-logs', + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + this.outputBucket = outputBucket; + + const asset = new DockerImageAsset(this, 'Image', { + directory: props.dockerImageAssetDirectory, + }); + + const cluster = new Cluster(this, 'Cluster', { + containerInsights: true, + }) + const queueProcessingFargateService = new QueueProcessingFargateService(this, 'Service', { + cluster: cluster, + memoryLimitMiB: props.memoryLimitMiB, + queue: queue, + image: ContainerImage.fromDockerImageAsset(asset), + healthCheck: { + command: ['CMD-SHELL', '/usr/src/app/healthcheck.sh'], + interval: Duration.seconds(30), + timeout: Duration.seconds(30), + retries: 3, + startPeriod: Duration.seconds(5), + }, + enableLogging: true, + environment: { + CIRCUIT_BREAKER_SSM_PARAMETER_NAME: circuitBreakerParameter.parameterName, + LOGGING_LEVEL: props.containerLoggingLevel, + BUCKET_NAME: outputBucket.bucketName, + }, + minScalingCapacity: 0, + maxScalingCapacity: 10, + scalingSteps: + [ + { upper: 0, change: -1 }, + { lower: 1, change: +1 }, // because `minScalingCapacity` set at zero + { lower: 100, change: +1 }, + { lower: 500, change: +5 }, + ], + }); + + queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { + destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), + }); + queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['s3:GetObject'], + resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], + }) + ); + queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['s3:PutObject'], + resources: [outputBucket.bucketArn, outputBucket.bucketArn + '/*'], + }) + ); + bucketKey.grantDecrypt(queueProcessingFargateService.taskDefinition.taskRole); + queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['kms:GenerateDataKey'], + resources: [bucketKey.keyArn], + }) + ); + circuitBreakerParameter.grantRead(queueProcessingFargateService.taskDefinition.taskRole); + + //////////////////////////////////////////////////////////////////////// + // NagSuppressions + //////////////////////////////////////////////////////////////////////// + NagSuppressions.addResourceSuppressions(logBucket, + [ + { + id: 'AwsSolutions-S1', + reason: 'There is no need to enable access logging for the AccessLogs bucket.', + }, + ], + true, + ); + NagSuppressions.addResourceSuppressions([logBucket, rawBucket, outputBucket], + [ + { + id: 'HIPAA.Security-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.' + }, + { + id: 'NIST.800.53.R4-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', + + }, + { + id: 'NIST.800.53.R5-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', + }, + { + id: 'PCI.DSS.321-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', + }, + ], + true, + ); + NagSuppressions.addResourceSuppressions([cluster.vpc], + [ + { + id: 'HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled', + reason: 'default vpc creation', + }, + { + id: 'NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled', + reason: 'default vpc creation', + }, + { + id: 'PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled', + reason: 'default vpc creation', + }, + { + id: 'HIPAA.Security-VPCNoUnrestrictedRouteToIGW', + reason: 'default vpc creation', + }, + { + id: 'NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW', + reason: 'default vpc creation', + }, + { + id: 'PCI.DSS.321-VPCNoUnrestrictedRouteToIGW', + reason: 'default vpc creation', + }, + ], + true, + ); + + // Suppress findings for the BucketNotificationsHandler + // https://github.com/aws/aws-cdk/issues/9552 + const bucketNotifications = Stack.of(this).node.tryFindChild('BucketNotificationsHandler050a0587b7544547bf325f094a3db834'); + if (bucketNotifications) { + NagSuppressions.addResourceSuppressions(bucketNotifications, + [ + { + id: 'AwsSolutions-IAM4', + reason: 'AWSLambdaBasicExecutionRole is used by `addEventNotification`', + appliesTo: ['Policy::arn::iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'], + }, + { + id: 'AwsSolutions-IAM5', + reason: 'Suppress all AwsSolutions-IAM5 findings for this stack', + appliesTo: ['Resource::*'], + }, + { + id: 'HIPAA.Security-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + { + id: 'NIST.800.53.R4-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + { + id: 'NIST.800.53.R5-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + { + id: 'PCI.DSS.321-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + ], + true, + ); + } + NagSuppressions.addResourceSuppressions(queueProcessingFargateService, + [ + { + id: 'AwsSolutions-ECS2', + reason: 'Environmental variables are okay', + }, + ], + true, + ); + NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, + [ + { + id: 'AwsSolutions-IAM5', + reason: 'The ecr:GetAuthorizationToken requires "*"', + appliesTo: [ + 'Resource::*', + 'Resource::/*', + 'Resource::/*' + ], + }, + ], + true, + ); + + // Inline policies + let taskDefinitionRoles = [ + queueProcessingFargateService.taskDefinition.taskRole + ]; + if (queueProcessingFargateService.taskDefinition.executionRole) { + taskDefinitionRoles.push(queueProcessingFargateService.taskDefinition.executionRole); + } + NagSuppressions.addResourceSuppressions(taskDefinitionRoles, + [ + { + id: 'HIPAA.Security-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + { + id: 'NIST.800.53.R4-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + { + id: 'NIST.800.53.R5-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + { + id: 'PCI.DSS.321-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + ], + true, + ); + + // Unencrypted CloudWatch logging + NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, + [ + { + id: 'HIPAA.Security-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R4-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R5-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'PCI.DSS.321-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'HIPAA.Security-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'PCI.DSS.321-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + ], + true, + ); + } +} \ No newline at end of file From a5aed4ed04c5f9d4dde65ae5226d5137ce6ef4b8 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 26 Sep 2024 04:05:26 +0000 Subject: [PATCH 02/33] chore: self mutation Signed-off-by: github-actions --- apidocs/enumerations/ConstructName.md | 6 + ...tDataSource.md => SharePointDataSource.md} | 0 ...ype.md => SharePointDataSourceAuthType.md} | 0 ...tObjectType.md => SharePointObjectType.md} | 0 ...ilters.md => SharePointCrawlingFilters.md} | 0 ...> SharePointDataSourceAssociationProps.md} | 0 ...eProps.md => SharePointDataSourceProps.md} | 0 .../aws-llama-index-data-loader/index.ts | 776 +++++++++--------- 8 files changed, 400 insertions(+), 382 deletions(-) rename apidocs/namespaces/bedrock/classes/{SharepointDataSource.md => SharePointDataSource.md} (100%) rename apidocs/namespaces/bedrock/enumerations/{SharepointDataSourceAuthType.md => SharePointDataSourceAuthType.md} (100%) rename apidocs/namespaces/bedrock/enumerations/{SharepointObjectType.md => SharePointObjectType.md} (100%) rename apidocs/namespaces/bedrock/interfaces/{SharepointCrawlingFilters.md => SharePointCrawlingFilters.md} (100%) rename apidocs/namespaces/bedrock/interfaces/{SharepointDataSourceAssociationProps.md => SharePointDataSourceAssociationProps.md} (100%) rename apidocs/namespaces/bedrock/interfaces/{SharepointDataSourceProps.md => SharePointDataSourceProps.md} (100%) diff --git a/apidocs/enumerations/ConstructName.md b/apidocs/enumerations/ConstructName.md index 43d54800..56e42c2a 100644 --- a/apidocs/enumerations/ConstructName.md +++ b/apidocs/enumerations/ConstructName.md @@ -25,6 +25,12 @@ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. *** +### AWSLLAMAINDEXDATALOADER + +> **AWSLLAMAINDEXDATALOADER**: `"C12"` + +*** + ### AWSMODELDEPLOYMENTSAGEMAKER > **AWSMODELDEPLOYMENTSAGEMAKER**: `"C4"` diff --git a/apidocs/namespaces/bedrock/classes/SharepointDataSource.md b/apidocs/namespaces/bedrock/classes/SharePointDataSource.md similarity index 100% rename from apidocs/namespaces/bedrock/classes/SharepointDataSource.md rename to apidocs/namespaces/bedrock/classes/SharePointDataSource.md diff --git a/apidocs/namespaces/bedrock/enumerations/SharepointDataSourceAuthType.md b/apidocs/namespaces/bedrock/enumerations/SharePointDataSourceAuthType.md similarity index 100% rename from apidocs/namespaces/bedrock/enumerations/SharepointDataSourceAuthType.md rename to apidocs/namespaces/bedrock/enumerations/SharePointDataSourceAuthType.md diff --git a/apidocs/namespaces/bedrock/enumerations/SharepointObjectType.md b/apidocs/namespaces/bedrock/enumerations/SharePointObjectType.md similarity index 100% rename from apidocs/namespaces/bedrock/enumerations/SharepointObjectType.md rename to apidocs/namespaces/bedrock/enumerations/SharePointObjectType.md diff --git a/apidocs/namespaces/bedrock/interfaces/SharepointCrawlingFilters.md b/apidocs/namespaces/bedrock/interfaces/SharePointCrawlingFilters.md similarity index 100% rename from apidocs/namespaces/bedrock/interfaces/SharepointCrawlingFilters.md rename to apidocs/namespaces/bedrock/interfaces/SharePointCrawlingFilters.md diff --git a/apidocs/namespaces/bedrock/interfaces/SharepointDataSourceAssociationProps.md b/apidocs/namespaces/bedrock/interfaces/SharePointDataSourceAssociationProps.md similarity index 100% rename from apidocs/namespaces/bedrock/interfaces/SharepointDataSourceAssociationProps.md rename to apidocs/namespaces/bedrock/interfaces/SharePointDataSourceAssociationProps.md diff --git a/apidocs/namespaces/bedrock/interfaces/SharepointDataSourceProps.md b/apidocs/namespaces/bedrock/interfaces/SharePointDataSourceProps.md similarity index 100% rename from apidocs/namespaces/bedrock/interfaces/SharepointDataSourceProps.md rename to apidocs/namespaces/bedrock/interfaces/SharePointDataSourceProps.md diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 49b15d8d..299e8723 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -1,18 +1,30 @@ -import { Construct, } from 'constructs'; -import { Duration, RemovalPolicy, Stack, } from 'aws-cdk-lib'; -import { DockerImageAsset, } from 'aws-cdk-lib/aws-ecr-assets'; +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +import { Duration, RemovalPolicy, Stack } from 'aws-cdk-lib'; import { FlowLogDestination } from 'aws-cdk-lib/aws-ec2'; -import { Cluster, ContainerImage, } from 'aws-cdk-lib/aws-ecs'; -import { Effect, PolicyStatement, ServicePrincipal, } from 'aws-cdk-lib/aws-iam'; -import { Key } from "aws-cdk-lib/aws-kms"; -import { BlockPublicAccess, Bucket, BucketEncryption, EventType, ObjectLockMode, } from 'aws-cdk-lib/aws-s3'; -import { Topic, } from 'aws-cdk-lib/aws-sns'; -import { Queue, } from 'aws-cdk-lib/aws-sqs'; +import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; +import { Cluster, ContainerImage } from 'aws-cdk-lib/aws-ecs'; import { QueueProcessingFargateService } from 'aws-cdk-lib/aws-ecs-patterns'; -import { SnsDestination } from 'aws-cdk-lib/aws-s3-notifications' -import { SqsSubscription, } from 'aws-cdk-lib/aws-sns-subscriptions'; +import { Effect, PolicyStatement, ServicePrincipal } from 'aws-cdk-lib/aws-iam'; +import { Key } from 'aws-cdk-lib/aws-kms'; +import { BlockPublicAccess, Bucket, BucketEncryption, EventType, ObjectLockMode } from 'aws-cdk-lib/aws-s3'; +import { SnsDestination } from 'aws-cdk-lib/aws-s3-notifications'; +import { Topic } from 'aws-cdk-lib/aws-sns'; +import { SqsSubscription } from 'aws-cdk-lib/aws-sns-subscriptions'; +import { Queue } from 'aws-cdk-lib/aws-sqs'; import { StringParameter } from 'aws-cdk-lib/aws-ssm'; import { NagSuppressions } from 'cdk-nag'; +import { Construct } from 'constructs'; import { BaseClass, BaseClassProps, ConstructName } from '../../../common/base-class'; export interface LlamaIndexDataLoaderProps { @@ -35,12 +47,12 @@ export interface LlamaIndexDataLoaderProps { */ readonly containerLoggingLevel: string; - /** + /** * Value will be appended to resources name. * * @default - _dev */ - readonly stage?: string; + readonly stage?: string; /** * Enable observability. Warning: associated cost with the services * used. Best practive to enable by default. @@ -53,392 +65,392 @@ export interface LlamaIndexDataLoaderProps { export class LlamaIndexDataLoader extends BaseClass { - public readonly s3Bucket?: Bucket; - public readonly snsTopic: Topic; - public readonly sqsQueue: Queue; - public readonly ssmParameter: StringParameter; - public readonly outputBucket: Bucket; - - constructor(scope: Construct, id: string, props: LlamaIndexDataLoaderProps) { - super(scope, id); + public readonly s3Bucket?: Bucket; + public readonly snsTopic: Topic; + public readonly sqsQueue: Queue; + public readonly ssmParameter: StringParameter; + public readonly outputBucket: Bucket; - const baseProps: BaseClassProps = { - stage: props.stage, - constructName: ConstructName.AWSLLAMAINDEXDATALOADER, - constructId: id, - observability: props.observability, - } + constructor(scope: Construct, id: string, props: LlamaIndexDataLoaderProps) { + super(scope, id); - this.updateEnvSuffix(baseProps); - this.addObservabilityToConstruct(baseProps); - + const baseProps: BaseClassProps = { + stage: props.stage, + constructName: ConstructName.AWSLLAMAINDEXDATALOADER, + constructId: id, + observability: props.observability, + }; - const bucketKey = new Key(this, 'LogBucketKey', { - enableKeyRotation: true, - }) - const logBucket = new Bucket(this, 'LogBucket', { - enforceSSL: true, - versioned: true, - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - }); - const rawBucket = new Bucket(this, 'Raw', { - enforceSSL: true, - versioned: true, - serverAccessLogsBucket: logBucket, - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - serverAccessLogsPrefix: 'raw-bucket-access-logs', - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - lifecycleRules: [ - { - id: 'AbortIncompleteMultipartUpload', - enabled: true, - abortIncompleteMultipartUploadAfter: Duration.days(1), - }, - ], - }); - this.s3Bucket = rawBucket; + this.updateEnvSuffix(baseProps); + this.addObservabilityToConstruct(baseProps); - const topicKey = new Key(this, 'TopicKey', { - enableKeyRotation: true, - }); - const topic = new Topic(this, 'Topic', { - enforceSSL: true, - masterKey: topicKey, - }); - this.snsTopic = topic; - topicKey.addToResourcePolicy( - new PolicyStatement({ - actions: ['kms:Decrypt', 'kms:GenerateDataKey*'], - resources: ['*'], - principals: [new ServicePrincipal('s3.amazonaws.com')], - }), - ); - topic.grantPublish(new ServicePrincipal('s3.amazonaws.com')); - rawBucket.addEventNotification( - EventType.OBJECT_CREATED, - new SnsDestination(topic), - ); - const queue = new Queue(this, 'Queue', { - visibilityTimeout: Duration.seconds(300), - enforceSSL: true, - deadLetterQueue: { - maxReceiveCount: 3, - queue: new Queue(this, 'DeadLetterQueue', { - enforceSSL: true, - }), - }, - }); - this.sqsQueue = queue; + const bucketKey = new Key(this, 'LogBucketKey', { + enableKeyRotation: true, + }); + const logBucket = new Bucket(this, 'LogBucket', { + enforceSSL: true, + versioned: true, + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + }); + const rawBucket = new Bucket(this, 'Raw', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: logBucket, + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + serverAccessLogsPrefix: 'raw-bucket-access-logs', + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + this.s3Bucket = rawBucket; - topic.addSubscription( - new SqsSubscription(queue), - ); + const topicKey = new Key(this, 'TopicKey', { + enableKeyRotation: true, + }); + const topic = new Topic(this, 'Topic', { + enforceSSL: true, + masterKey: topicKey, + }); + this.snsTopic = topic; + topicKey.addToResourcePolicy( + new PolicyStatement({ + actions: ['kms:Decrypt', 'kms:GenerateDataKey*'], + resources: ['*'], + principals: [new ServicePrincipal('s3.amazonaws.com')], + }), + ); + topic.grantPublish(new ServicePrincipal('s3.amazonaws.com')); + rawBucket.addEventNotification( + EventType.OBJECT_CREATED, + new SnsDestination(topic), + ); - // Create a new SSM Parameter holding a String - const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { - stringValue: 'False', - }); - this.ssmParameter = circuitBreakerParameter; + const queue = new Queue(this, 'Queue', { + visibilityTimeout: Duration.seconds(300), + enforceSSL: true, + deadLetterQueue: { + maxReceiveCount: 3, + queue: new Queue(this, 'DeadLetterQueue', { + enforceSSL: true, + }), + }, + }); + this.sqsQueue = queue; - const outputBucket = new Bucket(this, 'Output', { - enforceSSL: true, - versioned: true, - serverAccessLogsBucket: logBucket, - serverAccessLogsPrefix: 'output-bucket-access-logs', - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - lifecycleRules: [ - { - id: 'AbortIncompleteMultipartUpload', - enabled: true, - abortIncompleteMultipartUploadAfter: Duration.days(1), - }, - ], - }); - this.outputBucket = outputBucket; + topic.addSubscription( + new SqsSubscription(queue), + ); - const asset = new DockerImageAsset(this, 'Image', { - directory: props.dockerImageAssetDirectory, - }); + // Create a new SSM Parameter holding a String + const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { + stringValue: 'False', + }); + this.ssmParameter = circuitBreakerParameter; - const cluster = new Cluster(this, 'Cluster', { - containerInsights: true, - }) - const queueProcessingFargateService = new QueueProcessingFargateService(this, 'Service', { - cluster: cluster, - memoryLimitMiB: props.memoryLimitMiB, - queue: queue, - image: ContainerImage.fromDockerImageAsset(asset), - healthCheck: { - command: ['CMD-SHELL', '/usr/src/app/healthcheck.sh'], - interval: Duration.seconds(30), - timeout: Duration.seconds(30), - retries: 3, - startPeriod: Duration.seconds(5), - }, - enableLogging: true, - environment: { - CIRCUIT_BREAKER_SSM_PARAMETER_NAME: circuitBreakerParameter.parameterName, - LOGGING_LEVEL: props.containerLoggingLevel, - BUCKET_NAME: outputBucket.bucketName, - }, - minScalingCapacity: 0, - maxScalingCapacity: 10, - scalingSteps: - [ - { upper: 0, change: -1 }, - { lower: 1, change: +1 }, // because `minScalingCapacity` set at zero - { lower: 100, change: +1 }, - { lower: 500, change: +5 }, - ], - }); + const outputBucket = new Bucket(this, 'Output', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: logBucket, + serverAccessLogsPrefix: 'output-bucket-access-logs', + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + this.outputBucket = outputBucket; - queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { - destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), - }); - queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( - new PolicyStatement({ - effect: Effect.ALLOW, - actions: ['s3:GetObject'], - resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], - }) - ); - queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( - new PolicyStatement({ - effect: Effect.ALLOW, - actions: ['s3:PutObject'], - resources: [outputBucket.bucketArn, outputBucket.bucketArn + '/*'], - }) - ); - bucketKey.grantDecrypt(queueProcessingFargateService.taskDefinition.taskRole); - queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( - new PolicyStatement({ - effect: Effect.ALLOW, - actions: ['kms:GenerateDataKey'], - resources: [bucketKey.keyArn], - }) - ); - circuitBreakerParameter.grantRead(queueProcessingFargateService.taskDefinition.taskRole); + const asset = new DockerImageAsset(this, 'Image', { + directory: props.dockerImageAssetDirectory, + }); - //////////////////////////////////////////////////////////////////////// - // NagSuppressions - //////////////////////////////////////////////////////////////////////// - NagSuppressions.addResourceSuppressions(logBucket, + const cluster = new Cluster(this, 'Cluster', { + containerInsights: true, + }); + const queueProcessingFargateService = new QueueProcessingFargateService(this, 'Service', { + cluster: cluster, + memoryLimitMiB: props.memoryLimitMiB, + queue: queue, + image: ContainerImage.fromDockerImageAsset(asset), + healthCheck: { + command: ['CMD-SHELL', '/usr/src/app/healthcheck.sh'], + interval: Duration.seconds(30), + timeout: Duration.seconds(30), + retries: 3, + startPeriod: Duration.seconds(5), + }, + enableLogging: true, + environment: { + CIRCUIT_BREAKER_SSM_PARAMETER_NAME: circuitBreakerParameter.parameterName, + LOGGING_LEVEL: props.containerLoggingLevel, + BUCKET_NAME: outputBucket.bucketName, + }, + minScalingCapacity: 0, + maxScalingCapacity: 10, + scalingSteps: [ - { - id: 'AwsSolutions-S1', - reason: 'There is no need to enable access logging for the AccessLogs bucket.', - }, + { upper: 0, change: -1 }, + { lower: 1, change: +1 }, // because `minScalingCapacity` set at zero + { lower: 100, change: +1 }, + { lower: 500, change: +5 }, ], - true, - ); - NagSuppressions.addResourceSuppressions([logBucket, rawBucket, outputBucket], - [ - { - id: 'HIPAA.Security-S3BucketReplicationEnabled', - reason: 'Replication for this use case is uneccessary.' - }, - { - id: 'NIST.800.53.R4-S3BucketReplicationEnabled', - reason: 'Replication for this use case is uneccessary.', + }); - }, - { - id: 'NIST.800.53.R5-S3BucketReplicationEnabled', - reason: 'Replication for this use case is uneccessary.', - }, - { - id: 'PCI.DSS.321-S3BucketReplicationEnabled', - reason: 'Replication for this use case is uneccessary.', - }, - ], - true, - ); - NagSuppressions.addResourceSuppressions([cluster.vpc], - [ - { - id: 'HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled', - reason: 'default vpc creation', - }, - { - id: 'NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled', - reason: 'default vpc creation', - }, - { - id: 'PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled', - reason: 'default vpc creation', - }, - { - id: 'HIPAA.Security-VPCNoUnrestrictedRouteToIGW', - reason: 'default vpc creation', - }, - { - id: 'NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW', - reason: 'default vpc creation', - }, - { - id: 'PCI.DSS.321-VPCNoUnrestrictedRouteToIGW', - reason: 'default vpc creation', - }, - ], - true, - ); + queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { + destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), + }); + queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['s3:GetObject'], + resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], + }), + ); + queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['s3:PutObject'], + resources: [outputBucket.bucketArn, outputBucket.bucketArn + '/*'], + }), + ); + bucketKey.grantDecrypt(queueProcessingFargateService.taskDefinition.taskRole); + queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['kms:GenerateDataKey'], + resources: [bucketKey.keyArn], + }), + ); + circuitBreakerParameter.grantRead(queueProcessingFargateService.taskDefinition.taskRole); - // Suppress findings for the BucketNotificationsHandler - // https://github.com/aws/aws-cdk/issues/9552 - const bucketNotifications = Stack.of(this).node.tryFindChild('BucketNotificationsHandler050a0587b7544547bf325f094a3db834'); - if (bucketNotifications) { - NagSuppressions.addResourceSuppressions(bucketNotifications, - [ - { - id: 'AwsSolutions-IAM4', - reason: 'AWSLambdaBasicExecutionRole is used by `addEventNotification`', - appliesTo: ['Policy::arn::iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'], - }, - { - id: 'AwsSolutions-IAM5', - reason: 'Suppress all AwsSolutions-IAM5 findings for this stack', - appliesTo: ['Resource::*'], - }, - { - id: 'HIPAA.Security-IAMNoInlinePolicy', - reason: 'Inline policies are part of the BucketHandlerNotification', - }, - { - id: 'NIST.800.53.R4-IAMNoInlinePolicy', - reason: 'Inline policies are part of the BucketHandlerNotification', - }, - { - id: 'NIST.800.53.R5-IAMNoInlinePolicy', - reason: 'Inline policies are part of the BucketHandlerNotification', - }, - { - id: 'PCI.DSS.321-IAMNoInlinePolicy', - reason: 'Inline policies are part of the BucketHandlerNotification', - }, - ], - true, - ); - } - NagSuppressions.addResourceSuppressions(queueProcessingFargateService, - [ - { - id: 'AwsSolutions-ECS2', - reason: 'Environmental variables are okay', - }, - ], - true, - ); - NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, - [ - { - id: 'AwsSolutions-IAM5', - reason: 'The ecr:GetAuthorizationToken requires "*"', - appliesTo: [ - 'Resource::*', - 'Resource::/*', - 'Resource::/*' - ], - }, - ], - true, - ); + //////////////////////////////////////////////////////////////////////// + // NagSuppressions + //////////////////////////////////////////////////////////////////////// + NagSuppressions.addResourceSuppressions(logBucket, + [ + { + id: 'AwsSolutions-S1', + reason: 'There is no need to enable access logging for the AccessLogs bucket.', + }, + ], + true, + ); + NagSuppressions.addResourceSuppressions([logBucket, rawBucket, outputBucket], + [ + { + id: 'HIPAA.Security-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', + }, + { + id: 'NIST.800.53.R4-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', - // Inline policies - let taskDefinitionRoles = [ - queueProcessingFargateService.taskDefinition.taskRole - ]; - if (queueProcessingFargateService.taskDefinition.executionRole) { - taskDefinitionRoles.push(queueProcessingFargateService.taskDefinition.executionRole); - } - NagSuppressions.addResourceSuppressions(taskDefinitionRoles, - [ - { - id: 'HIPAA.Security-IAMNoInlinePolicy', - reason: 'Inline policies are acceptable for this use case.', - }, - { - id: 'NIST.800.53.R4-IAMNoInlinePolicy', - reason: 'Inline policies are acceptable for this use case.', - }, - { - id: 'NIST.800.53.R5-IAMNoInlinePolicy', - reason: 'Inline policies are acceptable for this use case.', - }, - { - id: 'PCI.DSS.321-IAMNoInlinePolicy', - reason: 'Inline policies are acceptable for this use case.', - }, - ], - true, - ); + }, + { + id: 'NIST.800.53.R5-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', + }, + { + id: 'PCI.DSS.321-S3BucketReplicationEnabled', + reason: 'Replication for this use case is uneccessary.', + }, + ], + true, + ); + NagSuppressions.addResourceSuppressions([cluster.vpc], + [ + { + id: 'HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled', + reason: 'default vpc creation', + }, + { + id: 'NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled', + reason: 'default vpc creation', + }, + { + id: 'PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled', + reason: 'default vpc creation', + }, + { + id: 'HIPAA.Security-VPCNoUnrestrictedRouteToIGW', + reason: 'default vpc creation', + }, + { + id: 'NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW', + reason: 'default vpc creation', + }, + { + id: 'PCI.DSS.321-VPCNoUnrestrictedRouteToIGW', + reason: 'default vpc creation', + }, + ], + true, + ); - // Unencrypted CloudWatch logging - NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, - [ - { - id: 'HIPAA.Security-CloudWatchLogGroupEncrypted', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'NIST.800.53.R4-CloudWatchLogGroupEncrypted', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'NIST.800.53.R5-CloudWatchLogGroupEncrypted', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'PCI.DSS.321-CloudWatchLogGroupEncrypted', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'HIPAA.Security-CloudWatchLogGroupRetentionPeriod', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod', - reason: 'CloudWatch logging is not encrypted', - }, - { - id: 'PCI.DSS.321-CloudWatchLogGroupRetentionPeriod', - reason: 'CloudWatch logging is not encrypted', - }, - ], - true, - ); + // Suppress findings for the BucketNotificationsHandler + // https://github.com/aws/aws-cdk/issues/9552 + const bucketNotifications = Stack.of(this).node.tryFindChild('BucketNotificationsHandler050a0587b7544547bf325f094a3db834'); + if (bucketNotifications) { + NagSuppressions.addResourceSuppressions(bucketNotifications, + [ + { + id: 'AwsSolutions-IAM4', + reason: 'AWSLambdaBasicExecutionRole is used by `addEventNotification`', + appliesTo: ['Policy::arn::iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'], + }, + { + id: 'AwsSolutions-IAM5', + reason: 'Suppress all AwsSolutions-IAM5 findings for this stack', + appliesTo: ['Resource::*'], + }, + { + id: 'HIPAA.Security-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + { + id: 'NIST.800.53.R4-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + { + id: 'NIST.800.53.R5-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + { + id: 'PCI.DSS.321-IAMNoInlinePolicy', + reason: 'Inline policies are part of the BucketHandlerNotification', + }, + ], + true, + ); } + NagSuppressions.addResourceSuppressions(queueProcessingFargateService, + [ + { + id: 'AwsSolutions-ECS2', + reason: 'Environmental variables are okay', + }, + ], + true, + ); + NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, + [ + { + id: 'AwsSolutions-IAM5', + reason: 'The ecr:GetAuthorizationToken requires "*"', + appliesTo: [ + 'Resource::*', + 'Resource::/*', + 'Resource::/*', + ], + }, + ], + true, + ); + + // Inline policies + let taskDefinitionRoles = [ + queueProcessingFargateService.taskDefinition.taskRole, + ]; + if (queueProcessingFargateService.taskDefinition.executionRole) { + taskDefinitionRoles.push(queueProcessingFargateService.taskDefinition.executionRole); + } + NagSuppressions.addResourceSuppressions(taskDefinitionRoles, + [ + { + id: 'HIPAA.Security-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + { + id: 'NIST.800.53.R4-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + { + id: 'NIST.800.53.R5-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + { + id: 'PCI.DSS.321-IAMNoInlinePolicy', + reason: 'Inline policies are acceptable for this use case.', + }, + ], + true, + ); + + // Unencrypted CloudWatch logging + NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, + [ + { + id: 'HIPAA.Security-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R4-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R5-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'PCI.DSS.321-CloudWatchLogGroupEncrypted', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'HIPAA.Security-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + { + id: 'PCI.DSS.321-CloudWatchLogGroupRetentionPeriod', + reason: 'CloudWatch logging is not encrypted', + }, + ], + true, + ); + } } \ No newline at end of file From 2ddb2d949477ddb99cc66a427c5b1c732b78213e Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 10:24:52 -0700 Subject: [PATCH 03/33] fix: defaults for props --- apidocs/README.md | 2 + apidocs/classes/BaseClass.md | 1 + apidocs/classes/LlamaIndexDataLoader.md | 289 ++++++++++++++++++ .../interfaces/LlamaIndexDataLoaderProps.md | 82 +++++ docs/generative_ai_cdk_constructs.drawio | 10 +- src/index.ts | 1 + .../aws-llama-index-data-loader/README.md | 129 ++++++++ .../aws-llama-index-data-loader/index.ts | 36 ++- 8 files changed, 543 insertions(+), 7 deletions(-) create mode 100644 apidocs/classes/LlamaIndexDataLoader.md create mode 100644 apidocs/interfaces/LlamaIndexDataLoaderProps.md create mode 100644 src/patterns/gen-ai/aws-llama-index-data-loader/README.md diff --git a/apidocs/README.md b/apidocs/README.md index b2871ae6..8cd51992 100644 --- a/apidocs/README.md +++ b/apidocs/README.md @@ -32,6 +32,7 @@ - [JumpStartModel](classes/JumpStartModel.md) - [JumpStartSageMakerEndpoint](classes/JumpStartSageMakerEndpoint.md) - [LangchainCommonDepsLayer](classes/LangchainCommonDepsLayer.md) +- [LlamaIndexDataLoader](classes/LlamaIndexDataLoader.md) - [QaAppsyncOpensearch](classes/QaAppsyncOpensearch.md) - [RagAppsyncStepfnOpensearch](classes/RagAppsyncStepfnOpensearch.md) - [SageMakerEndpointBase](classes/SageMakerEndpointBase.md) @@ -60,6 +61,7 @@ - [JumpStartSageMakerEndpointProps](interfaces/JumpStartSageMakerEndpointProps.md) - [LangchainLayerProps](interfaces/LangchainLayerProps.md) - [LangchainProps](interfaces/LangchainProps.md) +- [LlamaIndexDataLoaderProps](interfaces/LlamaIndexDataLoaderProps.md) - [ModelMonitoringProps](interfaces/ModelMonitoringProps.md) - [QaAppsyncOpensearchProps](interfaces/QaAppsyncOpensearchProps.md) - [RagAppsyncStepfnOpensearchProps](interfaces/RagAppsyncStepfnOpensearchProps.md) diff --git a/apidocs/classes/BaseClass.md b/apidocs/classes/BaseClass.md index d77f5bf1..47ed4e73 100644 --- a/apidocs/classes/BaseClass.md +++ b/apidocs/classes/BaseClass.md @@ -19,6 +19,7 @@ - [`ContentGenerationAppSyncLambda`](ContentGenerationAppSyncLambda.md) - [`WebCrawler`](WebCrawler.md) - [`TextToSql`](TextToSql.md) +- [`LlamaIndexDataLoader`](LlamaIndexDataLoader.md) ## Constructors diff --git a/apidocs/classes/LlamaIndexDataLoader.md b/apidocs/classes/LlamaIndexDataLoader.md new file mode 100644 index 00000000..d4846c13 --- /dev/null +++ b/apidocs/classes/LlamaIndexDataLoader.md @@ -0,0 +1,289 @@ +[**@cdklabs/generative-ai-cdk-constructs**](../README.md) • **Docs** + +*** + +[@cdklabs/generative-ai-cdk-constructs](../README.md) / LlamaIndexDataLoader + +# Class: LlamaIndexDataLoader + +## Extends + +- [`BaseClass`](BaseClass.md) + +## Constructors + +### new LlamaIndexDataLoader() + +> **new LlamaIndexDataLoader**(`scope`, `id`, `props`): [`LlamaIndexDataLoader`](LlamaIndexDataLoader.md) + +#### Parameters + +• **scope**: `Construct` + +• **id**: `string` + +• **props**: [`LlamaIndexDataLoaderProps`](../interfaces/LlamaIndexDataLoaderProps.md) + +#### Returns + +[`LlamaIndexDataLoader`](LlamaIndexDataLoader.md) + +#### Overrides + +[`BaseClass`](BaseClass.md).[`constructor`](BaseClass.md#constructors) + +## Properties + +### constructUsageMetric + +> `readonly` **constructUsageMetric**: `"uksb-1tupboc45"` = `'uksb-1tupboc45'` + +construct usage metric , added in template description + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`constructUsageMetric`](BaseClass.md#constructusagemetric) + +*** + +### enablexray + +> **enablexray**: `boolean` = `true` + +enable disable xray tracing + +#### Default + +```ts +- True +``` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`enablexray`](BaseClass.md#enablexray) + +*** + +### fieldLogLevel + +> **fieldLogLevel**: `FieldLogLevel` = `appsync.FieldLogLevel.ALL` + +Default log config for all constructs + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`fieldLogLevel`](BaseClass.md#fieldloglevel) + +*** + +### lambdaTracing + +> **lambdaTracing**: `Tracing` = `lambda.Tracing.ACTIVE` + +enable disable lambda tracing + +#### Default + +```ts +- Active +``` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`lambdaTracing`](BaseClass.md#lambdatracing) + +*** + +### node + +> `readonly` **node**: `Node` + +The tree node. + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`node`](BaseClass.md#node) + +*** + +### outputBucket + +> `readonly` **outputBucket**: `Bucket` + +*** + +### retention + +> **retention**: `RetentionDays` = `logs.RetentionDays.TEN_YEARS` + +Default log retention config for all constructs + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`retention`](BaseClass.md#retention) + +*** + +### s3Bucket? + +> `readonly` `optional` **s3Bucket**: `Bucket` + +*** + +### snsTopic + +> `readonly` **snsTopic**: `Topic` + +*** + +### sqsQueue + +> `readonly` **sqsQueue**: `Queue` + +*** + +### ssmParameter + +> `readonly` **ssmParameter**: `StringParameter` + +*** + +### stage + +> **stage**: `string` + +Value will be appended to resources name. + +#### Default + +```ts +- _dev +``` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`stage`](BaseClass.md#stage) + +*** + +### usageMetricMap + +> `protected` `static` **usageMetricMap**: `Record`\<`string`, `number`\> + +Record , maps construct name with number of deployments + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`usageMetricMap`](BaseClass.md#usagemetricmap) + +## Methods + +### addObservabilityToConstruct() + +> `protected` **addObservabilityToConstruct**(`props`): `void` + +#### Parameters + +• **props**: [`BaseClassProps`](../interfaces/BaseClassProps.md) + +#### Returns + +`void` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`addObservabilityToConstruct`](BaseClass.md#addobservabilitytoconstruct) + +*** + +### toString() + +> **toString**(): `string` + +Returns a string representation of this construct. + +#### Returns + +`string` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`toString`](BaseClass.md#tostring) + +*** + +### updateConstructUsageMetricCode() + +> `protected` **updateConstructUsageMetricCode**(`props`, `scope`, `lambdaFunctions`): `void` + +#### Parameters + +• **props**: [`BaseClassProps`](../interfaces/BaseClassProps.md) + +• **scope**: `Construct` + +• **lambdaFunctions**: `DockerImageFunction`[] + +#### Returns + +`void` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`updateConstructUsageMetricCode`](BaseClass.md#updateconstructusagemetriccode) + +*** + +### updateEnvSuffix() + +> `protected` **updateEnvSuffix**(`props`): `void` + +#### Parameters + +• **props**: [`BaseClassProps`](../interfaces/BaseClassProps.md) + +#### Returns + +`void` + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`updateEnvSuffix`](BaseClass.md#updateenvsuffix) + +*** + +### isConstruct() + +> `static` **isConstruct**(`x`): `x is Construct` + +Checks if `x` is a construct. + +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. + +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. + +#### Parameters + +• **x**: `any` + +Any object + +#### Returns + +`x is Construct` + +true if `x` is an object created from a class which extends `Construct`. + +#### Inherited from + +[`BaseClass`](BaseClass.md).[`isConstruct`](BaseClass.md#isconstruct) diff --git a/apidocs/interfaces/LlamaIndexDataLoaderProps.md b/apidocs/interfaces/LlamaIndexDataLoaderProps.md new file mode 100644 index 00000000..9807fdf2 --- /dev/null +++ b/apidocs/interfaces/LlamaIndexDataLoaderProps.md @@ -0,0 +1,82 @@ +[**@cdklabs/generative-ai-cdk-constructs**](../README.md) • **Docs** + +*** + +[@cdklabs/generative-ai-cdk-constructs](../README.md) / LlamaIndexDataLoaderProps + +# Interface: LlamaIndexDataLoaderProps + +## Properties + +### containerLoggingLevel? + +> `readonly` `optional` **containerLoggingLevel**: `string` + +#### Description + +the container's logging level + +#### Default + +```ts +'WARNING' +``` + +*** + +### dockerImageAssetDirectory + +> `readonly` **dockerImageAssetDirectory**: `string` + +The directory to build the Docker image + +#### Description + +The directory to build the Docker image. + +*** + +### memoryLimitMiB? + +> `readonly` `optional` **memoryLimitMiB**: `number` + +The default memory + +#### Description + +The default memory. + +#### Default + +```ts +2048 +``` + +*** + +### observability? + +> `readonly` `optional` **observability**: `boolean` + +Enable observability. Warning: associated cost with the services +used. Best practive to enable by default. + +#### Default + +```ts +- true +``` + +*** + +### stage? + +> `readonly` `optional` **stage**: `string` + +Value will be appended to resources name. + +#### Default + +```ts +- _dev +``` diff --git a/docs/generative_ai_cdk_constructs.drawio b/docs/generative_ai_cdk_constructs.drawio index d2616e52..ed5d254d 100644 --- a/docs/generative_ai_cdk_constructs.drawio +++ b/docs/generative_ai_cdk_constructs.drawio @@ -1,4 +1,4 @@ - + @@ -1012,4 +1012,12 @@ + + + + + + + + diff --git a/src/index.ts b/src/index.ts index 8fb6dc8d..6eccd360 100644 --- a/src/index.ts +++ b/src/index.ts @@ -32,3 +32,4 @@ export * from './common/base-class/base-class'; export * from './common/base-class/construct-name-enum'; export * from './patterns/gen-ai/aws-bedrock-cw-dashboard'; export * from './patterns/gen-ai/aws-aoss-cw-dashboard'; +export * from './patterns/gen-ai/aws-llama-index-data-loader'; diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md new file mode 100644 index 00000000..cb7571e9 --- /dev/null +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md @@ -0,0 +1,129 @@ +# aws-llama-index-data-loader + + + +--- + +![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) + +> All classes are under active development and subject to non-backward compatible changes or removal in any +> future version. These are not subject to the [Semantic Versioning](https://semver.org/) model. +> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package. + +--- + + + +## Table of contents + +- [aws-llama-index-data-loader](#aws-llama-index-data-loader) + - [Table of contents](#table-of-contents) + - [Credits](#credits) + - [Overview](#overview) + - [Initializer](#initializer) + - [Pattern Construct Props](#pattern-construct-props) + - [Pattern Properties](#pattern-properties) + - [Methods](#methods) + - [Default properties](#default-properties) + - [Cost](#cost) + - [Security](#security) + - [Supported AWS Regions](#supported-aws-regions) + - [Quotas](#quotas) + +## Credits + +Thanks to @jtlew for the initial insight for the need on this construct. + +## Overview + +This construct provides a Amazon Elastic Cluster Service using Llamaindex Data Loaders with default properties [here](#default-properties). + +Here is a minimal deployable pattern definition: + +TypeScript + +```typescript +import { Construct } from 'constructs'; +import { Stack, StackProps, Aws } from 'aws-cdk-lib'; +import { LlamaIndexDataLoader } from '@cdklabs/generative-ai-cdk-constructs'; + +const dataLoader = new LlamaIndexDataLoader(this, 'LlamaIndexDataLoader', {}); +``` + +Python + +```python +from constructs import Construct +from cdklabs.generative_ai_cdk_constructs import LlamaIndexDataLoader + +data_loader = LlamaIndexDataLoader(self, 'LlamaIndexDataLoader', ) +``` + +## Initializer + +``` +new LlamaIndexDataLoader(scope: Construct, id: string, props: LlamaIndexDataLoaderProps) +``` + +Parameters + +- scope [Construct](https://docs.aws.amazon.com/cdk/api/v2/docs/constructs.Construct.html) +- id string +- props LlamaIndexDataLoaderProps + +## Pattern Construct Props + + +| **Name** | **Type** | **Required** | **Description** | +| :--------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| existingDashboard | [aws_cloudwatch.Dashboard](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Dashboard.html) | ![Optional](https://img.shields.io/badge/optional-4169E1) | Existing dashboard to be used by the construct. **Mutually exclusive** with ```dashboardName``` - only one should be specified. | +| dashboardName | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | A name for the dashboard which will be created. If not provided, the construct will create a new dashboard named 'AossMetricsDashboard'. **Mutually exclusive** with ```existingDashboard``` - only one should be specified. | + +## Pattern Properties + +| **Name** | **Type** | **Description** | +| :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| dashboard | [aws_cloudwatch.Dashboard](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Dashboard.html) | The CloudWatch Dashboard used by the construct (whether created by the construct or provided by the client) | + +## Methods + +N/A + +## Default properties + +Out-of-the-box implementation of the construct without any override will set the following defaults: + +### Memory + +TBD + +## Cost + +You are responsible for the cost of the AWS services used while running this construct. + +We recommend creating a budget through [AWS Cost Explorer](http://aws.amazon.com/aws-cost-management/aws-cost-explorer/) to help manage costs. Prices are subject to change. For full details, refer to the pricing webpage for each AWS service used in this solution: + +## Security + +When you build systems on AWS infrastructure, security responsibilities are shared between you and AWS. This [shared responsibility](http://aws.amazon.com/compliance/shared-responsibility-model/) model reduces your operational burden because AWS operates, manages, and controls the components including the host operating system, virtualization layer, and physical security of the facilities in which the services operate. For more information about AWS security, visit [AWS Cloud Security](http://aws.amazon.com/security/). + +Optionnaly, you can provide existing resources to the constructs (marked optional in the construct pattern props). If you chose to do so, please refer to the official documentation on best practices to secure each service: + +- TBD + + +## Supported AWS Regions + +This solution depends uses the Amazon OpenSearch Serverless and Amazon CloudWatch services, which are not currently available in all AWS Regions. You must launch this construct in an AWS Region where these services are available. For the most current availability of AWS services by Region, see the [AWS Regional Services List](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). + +## Quotas + +Service quotas, also referred to as limits, are the maximum number of service resources or operations for your AWS account. + +Make sure you have sufficient quota for each of the services implemented in this solution. For more information, refer to [AWS service quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). + +To view the service quotas for all AWS services in the documentation without switching pages, view the information in the [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-general.pdf#aws-service-information) page in the PDF instead. + +--- + +© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 299e8723..b7abf0b6 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -10,6 +10,7 @@ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * and limitations under the License. */ +import{ join } from 'node:path'; import { Duration, RemovalPolicy, Stack } from 'aws-cdk-lib'; import { FlowLogDestination } from 'aws-cdk-lib/aws-ec2'; import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; @@ -31,21 +32,22 @@ export interface LlamaIndexDataLoaderProps { /** * The directory to build the Docker image * @description The directory to build the Docker image. + * @default __dirname + '/docker' */ - readonly dockerImageAssetDirectory: string; + readonly dockerImageAssetDirectory?: string; /** * The default memory * @description The default memory. * @default 2048 */ - readonly memoryLimitMiB: number; + readonly memoryLimitMiB?: number | undefined; /** * @description the container's logging level * @default 'WARNING' */ - readonly containerLoggingLevel: string; + readonly containerLoggingLevel?: string; /** * Value will be appended to resources name. @@ -71,6 +73,10 @@ export class LlamaIndexDataLoader extends BaseClass { public readonly ssmParameter: StringParameter; public readonly outputBucket: Bucket; + private readonly dockerImageAssetDirectory: string; + private readonly memoryLimitMiB: number; + private readonly containerLoggingLevel: string; + constructor(scope: Construct, id: string, props: LlamaIndexDataLoaderProps) { super(scope, id); @@ -84,6 +90,21 @@ export class LlamaIndexDataLoader extends BaseClass { this.updateEnvSuffix(baseProps); this.addObservabilityToConstruct(baseProps); + // Update the optional properties to their defaults + this.dockerImageAssetDirectory = props.dockerImageAssetDirectory ?? + join( + __dirname, + '..', + '..', + '..', + '..', + 'resources', + 'gen-ai', + 'aws-llama-index-data-loader', + 'docker', + ); + this.memoryLimitMiB = props.memoryLimitMiB ?? 2048; + this.containerLoggingLevel = props.containerLoggingLevel ?? 'WARNING'; const bucketKey = new Key(this, 'LogBucketKey', { enableKeyRotation: true, @@ -199,7 +220,10 @@ export class LlamaIndexDataLoader extends BaseClass { this.outputBucket = outputBucket; const asset = new DockerImageAsset(this, 'Image', { - directory: props.dockerImageAssetDirectory, + directory: this.dockerImageAssetDirectory, + buildArgs: { + PYTHON_TAG: '3.12-nonexistant', + }, }); const cluster = new Cluster(this, 'Cluster', { @@ -207,7 +231,7 @@ export class LlamaIndexDataLoader extends BaseClass { }); const queueProcessingFargateService = new QueueProcessingFargateService(this, 'Service', { cluster: cluster, - memoryLimitMiB: props.memoryLimitMiB, + memoryLimitMiB: this.memoryLimitMiB, queue: queue, image: ContainerImage.fromDockerImageAsset(asset), healthCheck: { @@ -220,7 +244,7 @@ export class LlamaIndexDataLoader extends BaseClass { enableLogging: true, environment: { CIRCUIT_BREAKER_SSM_PARAMETER_NAME: circuitBreakerParameter.parameterName, - LOGGING_LEVEL: props.containerLoggingLevel, + LOGGING_LEVEL: this.containerLoggingLevel, BUCKET_NAME: outputBucket.bucketName, }, minScalingCapacity: 0, From f42f3f183c3d2f234db1dfa9a8587cbf13f650dd Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 8 Oct 2024 17:31:23 +0000 Subject: [PATCH 04/33] chore: self mutation Signed-off-by: github-actions --- apidocs/interfaces/LlamaIndexDataLoaderProps.md | 10 ++++++++-- .../gen-ai/aws-llama-index-data-loader/index.ts | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apidocs/interfaces/LlamaIndexDataLoaderProps.md b/apidocs/interfaces/LlamaIndexDataLoaderProps.md index 9807fdf2..156bf200 100644 --- a/apidocs/interfaces/LlamaIndexDataLoaderProps.md +++ b/apidocs/interfaces/LlamaIndexDataLoaderProps.md @@ -24,9 +24,9 @@ the container's logging level *** -### dockerImageAssetDirectory +### dockerImageAssetDirectory? -> `readonly` **dockerImageAssetDirectory**: `string` +> `readonly` `optional` **dockerImageAssetDirectory**: `string` The directory to build the Docker image @@ -34,6 +34,12 @@ The directory to build the Docker image The directory to build the Docker image. +#### Default + +```ts +__dirname + '/docker' +``` + *** ### memoryLimitMiB? diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index b7abf0b6..19acb8ab 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -10,7 +10,7 @@ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * and limitations under the License. */ -import{ join } from 'node:path'; +import { join } from 'node:path'; import { Duration, RemovalPolicy, Stack } from 'aws-cdk-lib'; import { FlowLogDestination } from 'aws-cdk-lib/aws-ec2'; import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; From d05f54c0f042b806843cf0968202b3a4a1368ffb Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 12:57:47 -0700 Subject: [PATCH 05/33] feat: add docker for llamaindex data loader --- .../docker/Dockerfile | 34 +++ .../docker/__init__.py | 0 .../docker/healthcheck.sh | 8 + .../docker/requirements.txt | 99 +++++++++ .../docker/runner.sh | 8 + .../docker/sqs_consumer.py | 201 ++++++++++++++++++ 6 files changed, 350 insertions(+) create mode 100644 resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile create mode 100644 resources/gen-ai/aws-llama-index-data-loader/docker/__init__.py create mode 100755 resources/gen-ai/aws-llama-index-data-loader/docker/healthcheck.sh create mode 100644 resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt create mode 100755 resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh create mode 100644 resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile b/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile new file mode 100644 index 00000000..fa18a1f6 --- /dev/null +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile @@ -0,0 +1,34 @@ +ARG PYTHON_TAG="latest" +# RedundantTargetPlatform check violation +# https://docs.docker.com/reference/build-checks/redundant-target-platform/ +FROM --platform=${BUILDPLATFORM} public.ecr.aws/docker/library/python:${PYTHON_TAG} AS build + +RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y install dnsutils +ENV PYTHONUNBUFFERED=1 +# TODO: set verbosity by argument rather than hardcoded. +ENV PYTHONVERBOSE=0 +# 3 + +# matches the current machine. (e.g. linux/amd64) +RUN echo "BUILDPLATFORM - matches the current machine ${BUILDPLATFORM}" +RUN echo ${BUILDOS} +RUN echo ${BUILDARCH} +RUN echo ${BUILDVARIANT} +RUN echo "TARGETPLATFORM — The value set with --platform flag on build ${TARGETPLATFORM}" +RUN echo ${TARGETOS} +RUN echo ${TARGETARCH} +RUN echo ${TARGETVARIANT} + +WORKDIR /usr/src/app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir --requirement requirements.txt + +COPY . . + +RUN chmod a+x runner.sh +RUN chmod a+x healthcheck.sh + +HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "/usr/src/app/healthcheck.sh" ] + +ENTRYPOINT [ "/usr/src/app/runner.sh", "/usr/src/app/sqs_consumer.py" ] \ No newline at end of file diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/__init__.py b/resources/gen-ai/aws-llama-index-data-loader/docker/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/healthcheck.sh b/resources/gen-ai/aws-llama-index-data-loader/docker/healthcheck.sh new file mode 100755 index 00000000..9c7c3f73 --- /dev/null +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/healthcheck.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +WORKING_DIRECTORY="/usr/src/app"; + +# Look for the process +pgrep --full "/bin/sh ${WORKING_DIRECTORY}/runner.sh ${WORKING_DIRECTORY}/sqs_consumer.py" 2> /dev/null > /dev/null; +exit ${?}; \ No newline at end of file diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt b/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt new file mode 100644 index 00000000..8a9eeed6 --- /dev/null +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt @@ -0,0 +1,99 @@ +aiobotocore==2.15.0 +aiohappyeyeballs==2.4.0 +aiohttp==3.10.5 +aioitertools==0.12.0 +aiosignal==1.3.1 +annotated-types==0.7.0 +anthropic==0.28.1 +anyio==4.4.0 +attrs==24.2.0 +beautifulsoup4==4.12.3 +boto3==1.35.9 +botocore==1.35.16 +cachetools==5.5.0 +certifi==2024.8.30 +charset-normalizer==3.3.2 +click==8.1.7 +dataclasses-json==0.6.7 +Deprecated==1.2.14 +dirtyjson==1.0.8 +distro==1.9.0 +Events==0.5 +filelock==3.15.4 +frozenlist==1.4.1 +fsspec==2024.9.0 +greenlet==3.0.3 +h11==0.14.0 +httpcore==1.0.5 +httpx==0.27.2 +huggingface-hub==0.24.6 +idna==3.8 +Jinja2==3.1.4 +jiter==0.5.0 +jmespath==1.0.1 +joblib==1.4.2 +jsonpickle==3.3.0 +llama-index-core==0.11.2 +llama-index-embeddings-bedrock==0.3.0 +llama-index-llms-anthropic==0.2.1 +llama-index-llms-bedrock==0.2.0 +llama-index-readers-file==0.2.1 +llama-index-readers-s3==0.2.0 +llama-index-vector-stores-opensearch==0.2.0 +llvmlite==0.43.0 +MarkupSafe==2.1.5 +marshmallow==3.22.0 +more-itertools==10.5.0 +mpmath==1.3.0 +multidict==6.0.5 +mypy-extensions==1.0.0 +nest-asyncio==1.6.0 +networkx==3.3 +nltk==3.9.1 +numba==0.60.0 +numpy==1.26.4 +nvidia-cublas-cu12==12.1.3.1 +nvidia-cuda-cupti-cu12==12.1.105 +nvidia-cuda-nvrtc-cu12==12.1.105 +nvidia-cuda-runtime-cu12==12.1.105 +nvidia-cudnn-cu12==9.1.0.70 +nvidia-cufft-cu12==11.0.2.54 +nvidia-curand-cu12==10.3.2.106 +nvidia-cusolver-cu12==11.4.5.107 +nvidia-cusparse-cu12==12.1.0.106 +nvidia-nccl-cu12==2.20.5 +nvidia-nvjitlink-cu12==12.6.68 +nvidia-nvtx-cu12==12.1.105 +openai-whisper @ git+https://github.com/openai/whisper.git@279133e3107392276dc509148da1f41bfb532c7e +opensearch-py==2.7.1 +packaging==24.1 +pandas==2.2.2 +pillow==10.4.0 +pydantic==2.8.2 +pydantic_core==2.20.1 +pypdf==4.3.1 +python-dateutil==2.9.0.post0 +pytz==2024.1 +PyYAML==6.0.2 +regex==2024.7.24 +requests==2.32.3 +s3fs==2024.9.0 +s3transfer==0.10.2 +six==1.16.0 +sniffio==1.3.1 +soupsieve==2.6 +SQLAlchemy==2.0.32 +striprtf==0.0.26 +sympy==1.13.2 +tenacity==8.5.0 +tiktoken==0.7.0 +tokenizers==0.20.0 +torch==2.4.1 +tqdm==4.66.5 +triton==3.0.0 +typing-inspect==0.9.0 +typing_extensions==4.12.2 +tzdata==2024.1 +urllib3==2.2.2 +wrapt==1.16.0 +yarl==1.9.4 diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh b/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh new file mode 100755 index 00000000..3872b9ac --- /dev/null +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +echo "${$}" > pid; +echo "STARTING ${0} ${@}..."; +python3 -u ${@}; +echo "...ENDING ${0} ${@}"; +exit 0; \ No newline at end of file diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py new file mode 100644 index 00000000..1cd10c4e --- /dev/null +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py @@ -0,0 +1,201 @@ +#!/bin/env python3 -x -u + +from base64 import b64encode +from hashlib import sha256 +from json import loads +from json.decoder import JSONDecodeError +from logging import basicConfig +from logging import getLogger +from logging import StreamHandler +from logging import NOTSET +from os import getenv +from os.path import join +from signal import signal +from signal import SIGINT +from signal import SIGTERM +from sys import stdout +from time import sleep + +from boto3 import client +from boto3 import resource +from botocore.exceptions import ClientError +from cachetools import cached +from cachetools import TTLCache +from jsonpickle import encode +from llama_index.core import SimpleDirectoryReader +from s3fs import S3FileSystem + +MAX_SQS_VISIBILITY_TIMEOUT = 60 * 60 * 12 - 1 # Maximum SQS Visibility Timeout is <12 hours +WAIT_TIME_SECONDS = 1 # 0 - 20 seconds +basicConfig(stream=stdout, level=getenv('LOGGING_LEVEL', NOTSET)) +LOGGER = getLogger() +LOGGER.addHandler(StreamHandler(stream=stdout)) + +S3 = client('s3') +SQS = resource('sqs') +SSM = client('ssm') + +QUEUE_NAME = getenv('QUEUE_NAME') +BUCKET_NAME = getenv('BUCKET_NAME') +PREFIX = getenv('PREFIX', '') +CIRCUIT_BREAKER_SSM_PARAMETER_NAME = getenv('CIRCUIT_BREAKER_SSM_PARAMETER_NAME', '') +CIRCUIT_BREAKER_CACHE_TTL = 60 +WAIT_TIME_SECONDS = 1 + +if QUEUE_NAME is None: + raise AssertionError('QUEUE_NAME environment variable is not set') +else: + print(f'DEBUG: "QUEUE_NAME" is {QUEUE_NAME}', flush=True) +if BUCKET_NAME is None: + raise AssertionError('BUCKET_NAME environment variable is not set') +else: + print(f'DEBUG: "BUCKET_NAME" is {BUCKET_NAME}', flush=True) + +SQS_QUEUE = SQS.get_queue_by_name( + QueueName=QUEUE_NAME, +) +print(f'DEBUG: {SQS_QUEUE.attributes}', flush=True) + +class SignalHandler: + def __init__(self, sig): + self.received_signal = False + signal(sig, self._signal_handler) + + def _signal_handler(self, signal, frame): + print(f'handling signal {signal}, exiting gracefully', flush=True) + self.received_signal = True + +def save_document(documents, serialize=True) -> None: + for document in documents: + file_name = f"{document.metadata['file_name']}" if 'file_name' in document.metadata else '' + print(f'INFO(save_document): document id: {document.doc_id}', flush=True) + print(f'DEBUG(save_document): document text: {document.text}', flush=True) + print(f'DEBUG(save_document): document metadata: {document.metadata}', flush=True) + print(f'DEBUG(save_document): document extra info: {document.extra_info}', flush=True) + data = document.text.encode() + response = S3.put_object( + Body=data, + Bucket=BUCKET_NAME, + Key=join(PREFIX, file_name, f'{document.doc_id}.txt'), + ChecksumSHA256=b64encode(sha256(data).digest()).decode(), + ChecksumAlgorithm='SHA256', + ) + print(response, flush=True) + if serialize: + frozen = encode(document) + body = frozen.encode() + print(f'DEBUG frozen {frozen}', flush=True) + S3.put_object( + Body=body, + Bucket=BUCKET_NAME, + Key=join(PREFIX, file_name, f'{document.doc_id}.json'), + ChecksumSHA256=b64encode(sha256(body).digest()).decode(), + ChecksumAlgorithm='SHA256', + ) + +def load_document(filename) -> None: + print(f'DEBUG(load_document): loading {filename}', flush=True) + reader = SimpleDirectoryReader( + fs=S3FileSystem(), + input_files=[filename], + ) + documents = reader.load_data() + save_document(documents) + +def log_message(sqs_message) -> None: + print(f'INFO(log_message): message id: {sqs_message.message_id}', flush=True) + print(f'DEBUG(log_message): message attributes: {sqs_message.message_attributes}', flush=True) + print(f'DEBUG(log_message): message available subresources: {sqs_message.get_available_subresources()}', flush=True) + print(f'DEBUG(log_message): attributes: {sqs_message.attributes}', flush=True) + print(f'DEBUG(log_message): body: {sqs_message.body}', flush=True) + print(f'DEBUG(log_message): md5 of body: {sqs_message.md5_of_body}', flush=True) + print(f'DEBUG(log_message): md5 of message attributes: {sqs_message.md5_of_message_attributes}', flush=True) + +def process_message(sqs_message) -> None: + print(f'INFO(process_message): message id: {sqs_message.message_id}', flush=True) + json_message = loads(sqs_message.body) + if 'Type' in json_message and json_message['Type'] == 'Notification': + if 'Message' in json_message and json_message['Message'] != '' and 'Subject' in json_message and json_message['Subject'] == 'Amazon S3 Notification': + message_content = loads(json_message['Message']) + if 'Records' in message_content: + for record in message_content['Records']: + if 'eventName' in record and record['eventName'].startswith('ObjectCreated') and 's3' in record and 'object' in record['s3'] and 'key' in record['s3']['object'] and 'bucket' in record['s3'] and 'name' in record['s3']['bucket']: + print(f'INFO(process_message): s3 object key: {record["s3"]["object"]["key"]} in {record["s3"]["bucket"]["name"]}', flush=True) + load_document(join(record['s3']['bucket']['name'], record['s3']['object']['key'])) + else: + print(f'WARNING(process_message): skipped: {record}', flush=True) + else: + print(f'WARNING(process_message): missing records: {message_content}', flush=True) + else: + print(f'WARNING(process_message): unknown message: {json_message}', flush=True) + else: + print(f'WARNING(process_message): unknown message type: {json_message}', flush=True) + +# The circuit breaker doesn't kill the process it only skips checking the queue... +@cached(cache=TTLCache(maxsize=1, ttl=CIRCUIT_BREAKER_CACHE_TTL)) +def check_circuit_breaker() -> bool: + tripped = False + if CIRCUIT_BREAKER_SSM_PARAMETER_NAME != '': + try: + response_get_parameter = SSM.get_parameter( + Name=CIRCUIT_BREAKER_SSM_PARAMETER_NAME, + ) + circuit_breaker = response_get_parameter['Parameter']['Value'] + print(f'Circuit breaker="{circuit_breaker}" for SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" to process the SQS queue named "{QUEUE_NAME}"', flush=True) + if response_get_parameter['Parameter']['Value'] == 'True': + tripped = True + except ClientError as exc: + if exc.response['Error']['Code'] == 'ParameterNotFound': + pass + else: + raise exc + return tripped + +def main(): + print('starting...', flush=True) + print(f'A circuit breaker SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" is being checked TTL of {CIRCUIT_BREAKER_CACHE_TTL} seconds, create it to skip long polling the SQS Queue "{QUEUE_NAME}"') + sigterm_handler = SignalHandler(SIGTERM) + sigint_handler = SignalHandler(SIGINT) + looper = 0 + # On command line, + C and ECS sends SIGTERM + # https://aws.amazon.com/blogs/containers/graceful-shutdowns-with-ecs/ + while not sigterm_handler.received_signal and not sigint_handler.received_signal: + # Only check for a circuit breaker every certain number of loops + if looper > 10: + looper = 0 + else: + looper += 1 + if check_circuit_breaker(): + print('💥' * looper, flush=True) + sleep(WAIT_TIME_SECONDS) + else: + print('🏃' * looper, flush=True) + messages = SQS_QUEUE.receive_messages( + MaxNumberOfMessages=10, # 1-10 messages + WaitTimeSeconds=WAIT_TIME_SECONDS, # 0-20 seconds + AttributeNames=['All'], + MessageAttributeNames=['All'], + ) + # Print out the messages - in case some are not processed... + for message in messages: log_message(message) + for message in messages: + print(f'INFO(main): message id: {message.message_id}', flush=True) + try: + # message.change_visibility( + # VisibilityTimeout=MAX_SQS_VISIBILITY_TIMEOUT, + # ) + process_message(message) + message.delete() + except Exception as e: + ## Set back to the SQS Queue's default visibility timeout upon an exception + # message.change_visibility( + # VisibilityTimeout=int(SQS_QUEUE.attributes['VisibilityTimeout']), + # ) + print(f'exception while processing message: {repr(e)}', flush=True) + continue + print('...ending', flush=True) + +if __name__ == '__main__': + main() +else: + print(f'{__name__} is not accounted for', flush=True) \ No newline at end of file From 817362f2f1f5cccc8a8520f956ec17e0e00effb6 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 12:59:02 -0700 Subject: [PATCH 06/33] feat: print to logger statements --- .../docker/sqs_consumer.py | 133 ++++++++++++------ 1 file changed, 92 insertions(+), 41 deletions(-) diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py index 1cd10c4e..bcc91bd7 100644 --- a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py @@ -14,6 +14,7 @@ from signal import SIGINT from signal import SIGTERM from sys import stdout +from sys import argv from time import sleep from boto3 import client @@ -45,16 +46,19 @@ if QUEUE_NAME is None: raise AssertionError('QUEUE_NAME environment variable is not set') else: - print(f'DEBUG: "QUEUE_NAME" is {QUEUE_NAME}', flush=True) + LOGGER.debug(f'"QUEUE_NAME" is {QUEUE_NAME}') + # print(f'DEBUG: "QUEUE_NAME" is {QUEUE_NAME}', flush=True) if BUCKET_NAME is None: raise AssertionError('BUCKET_NAME environment variable is not set') else: - print(f'DEBUG: "BUCKET_NAME" is {BUCKET_NAME}', flush=True) + LOGGER.debug(f'"BUCKET_NAME" is {BUCKET_NAME}') + # print(f'DEBUG: "BUCKET_NAME" is {BUCKET_NAME}', flush=True) SQS_QUEUE = SQS.get_queue_by_name( QueueName=QUEUE_NAME, ) -print(f'DEBUG: {SQS_QUEUE.attributes}', flush=True) +LOGGER.debug(f'Queue attributes {SQS_QUEUE.attributes}') +# print(f'DEBUG: {SQS_QUEUE.attributes}', flush=True) class SignalHandler: def __init__(self, sig): @@ -62,16 +66,22 @@ def __init__(self, sig): signal(sig, self._signal_handler) def _signal_handler(self, signal, frame): - print(f'handling signal {signal}, exiting gracefully', flush=True) + LOGGER.warning(f'handling signal {signal}, exiting gracefully') + # print(f'handling signal {signal}, exiting gracefully', flush=True) self.received_signal = True def save_document(documents, serialize=True) -> None: + save_result = False for document in documents: file_name = f"{document.metadata['file_name']}" if 'file_name' in document.metadata else '' - print(f'INFO(save_document): document id: {document.doc_id}', flush=True) - print(f'DEBUG(save_document): document text: {document.text}', flush=True) - print(f'DEBUG(save_document): document metadata: {document.metadata}', flush=True) - print(f'DEBUG(save_document): document extra info: {document.extra_info}', flush=True) + LOGGER.info(f'document id: {document.doc_id}') + LOGGER.debug(f'document text: {document.text}') + LOGGER.debug(f'document metadata: {document.metadata}') + LOGGER.debug(f'document extra info: {document.extra_info}') + # print(f'INFO(save_document): document id: {document.doc_id}', flush=True) + # print(f'DEBUG(save_document): document text: {document.text}', flush=True) + # print(f'DEBUG(save_document): document metadata: {document.metadata}', flush=True) + # print(f'DEBUG(save_document): document extra info: {document.extra_info}', flush=True) data = document.text.encode() response = S3.put_object( Body=data, @@ -80,39 +90,65 @@ def save_document(documents, serialize=True) -> None: ChecksumSHA256=b64encode(sha256(data).digest()).decode(), ChecksumAlgorithm='SHA256', ) - print(response, flush=True) + LOGGER.debug(f'put_object {response}') + save_result = True + # print(response, flush=True) if serialize: frozen = encode(document) body = frozen.encode() - print(f'DEBUG frozen {frozen}', flush=True) - S3.put_object( + LOGGER.debug(f'frozen {frozen}') + # print(f'DEBUG frozen {frozen}', flush=True) + frozen_response = S3.put_object( Body=body, Bucket=BUCKET_NAME, Key=join(PREFIX, file_name, f'{document.doc_id}.json'), ChecksumSHA256=b64encode(sha256(body).digest()).decode(), ChecksumAlgorithm='SHA256', ) + LOGGER.debug(f'frozen put_object {frozen_response}') + return save_result -def load_document(filename) -> None: - print(f'DEBUG(load_document): loading {filename}', flush=True) +def load_document(filename) -> bool: + load_result = False + LOGGER.debug(f'loading filename {filename}') + # print(f'DEBUG(load_document): loading {filename}', flush=True) reader = SimpleDirectoryReader( fs=S3FileSystem(), input_files=[filename], + raise_on_error=True, ) + LOGGER.debug(f'readed filename {filename}') documents = reader.load_data() - save_document(documents) + if len(documents): + LOGGER.debug(f'There are {len(documents)} documents') + else: + LOGGER.warning(f'TODO: There are no documents') + raise AssertionError('No documents found') + LOGGER.debug(f'loaded filename {filename}') + load_result = save_document(documents) + LOGGER.debug(f'saved filename {filename}') + return load_result def log_message(sqs_message) -> None: - print(f'INFO(log_message): message id: {sqs_message.message_id}', flush=True) - print(f'DEBUG(log_message): message attributes: {sqs_message.message_attributes}', flush=True) - print(f'DEBUG(log_message): message available subresources: {sqs_message.get_available_subresources()}', flush=True) - print(f'DEBUG(log_message): attributes: {sqs_message.attributes}', flush=True) - print(f'DEBUG(log_message): body: {sqs_message.body}', flush=True) - print(f'DEBUG(log_message): md5 of body: {sqs_message.md5_of_body}', flush=True) - print(f'DEBUG(log_message): md5 of message attributes: {sqs_message.md5_of_message_attributes}', flush=True) - -def process_message(sqs_message) -> None: - print(f'INFO(process_message): message id: {sqs_message.message_id}', flush=True) + LOGGER.info(f'log message id: {sqs_message.message_id}') + LOGGER.debug(f'message attributes: {sqs_message.message_attributes}') + LOGGER.debug(f'message available subresources: {sqs_message.get_available_subresources()}') + LOGGER.debug(f'attributes: {sqs_message.attributes}') + LOGGER.debug(f'body: {sqs_message.body}') + LOGGER.debug(f'md5 of body: {sqs_message.md5_of_body}') + LOGGER.debug(f'md5 of message attributes: {sqs_message.md5_of_message_attributes}') + # print(f'INFO(log_message): message id: {sqs_message.message_id}', flush=True) + # print(f'DEBUG(log_message): message attributes: {sqs_message.message_attributes}', flush=True) + # print(f'DEBUG(log_message): message available subresources: {sqs_message.get_available_subresources()}', flush=True) + # print(f'DEBUG(log_message): attributes: {sqs_message.attributes}', flush=True) + # print(f'DEBUG(log_message): body: {sqs_message.body}', flush=True) + # print(f'DEBUG(log_message): md5 of body: {sqs_message.md5_of_body}', flush=True) + # print(f'DEBUG(log_message): md5 of message attributes: {sqs_message.md5_of_message_attributes}', flush=True) + +def process_message(sqs_message) -> bool: + process_result = False + LOGGER.info(f'process message id: {sqs_message.message_id}') + # print(f'INFO(process_message): message id: {sqs_message.message_id}', flush=True) json_message = loads(sqs_message.body) if 'Type' in json_message and json_message['Type'] == 'Notification': if 'Message' in json_message and json_message['Message'] != '' and 'Subject' in json_message and json_message['Subject'] == 'Amazon S3 Notification': @@ -120,16 +156,22 @@ def process_message(sqs_message) -> None: if 'Records' in message_content: for record in message_content['Records']: if 'eventName' in record and record['eventName'].startswith('ObjectCreated') and 's3' in record and 'object' in record['s3'] and 'key' in record['s3']['object'] and 'bucket' in record['s3'] and 'name' in record['s3']['bucket']: - print(f'INFO(process_message): s3 object key: {record["s3"]["object"]["key"]} in {record["s3"]["bucket"]["name"]}', flush=True) - load_document(join(record['s3']['bucket']['name'], record['s3']['object']['key'])) + LOGGER.info(f's3 object key: {record["s3"]["object"]["key"]} in {record["s3"]["bucket"]["name"]}') + # print(f'INFO(process_message): s3 object key: {record["s3"]["object"]["key"]} in {record["s3"]["bucket"]["name"]}', flush=True) + process_result = load_document(join(record['s3']['bucket']['name'], record['s3']['object']['key'])) else: - print(f'WARNING(process_message): skipped: {record}', flush=True) + LOGGER.warning(f'skipped: {record}') + # print(f'WARNING(process_message): skipped: {record}', flush=True) else: - print(f'WARNING(process_message): missing records: {message_content}', flush=True) + LOGGER.warning(f'missing records: {message_content}') + # print(f'WARNING(process_message): missing records: {message_content}', flush=True) else: - print(f'WARNING(process_message): unknown message: {json_message}', flush=True) + LOGGER.warning(f'unknown message: {json_message}') + # print(f'WARNING(process_message): unknown message: {json_message}', flush=True) else: - print(f'WARNING(process_message): unknown message type: {json_message}', flush=True) + LOGGER.warning(f'unknown message type: {json_message}') + # print(f'WARNING(process_message): unknown message type: {json_message}', flush=True) + return process_result # The circuit breaker doesn't kill the process it only skips checking the queue... @cached(cache=TTLCache(maxsize=1, ttl=CIRCUIT_BREAKER_CACHE_TTL)) @@ -141,7 +183,8 @@ def check_circuit_breaker() -> bool: Name=CIRCUIT_BREAKER_SSM_PARAMETER_NAME, ) circuit_breaker = response_get_parameter['Parameter']['Value'] - print(f'Circuit breaker="{circuit_breaker}" for SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" to process the SQS queue named "{QUEUE_NAME}"', flush=True) + LOGGER.info(f'Circuit breaker="{circuit_breaker}" for SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" to process the SQS queue named "{QUEUE_NAME}"') + # print(f'Circuit breaker="{circuit_breaker}" for SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" to process the SQS queue named "{QUEUE_NAME}"', flush=True) if response_get_parameter['Parameter']['Value'] == 'True': tripped = True except ClientError as exc: @@ -152,8 +195,10 @@ def check_circuit_breaker() -> bool: return tripped def main(): - print('starting...', flush=True) - print(f'A circuit breaker SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" is being checked TTL of {CIRCUIT_BREAKER_CACHE_TTL} seconds, create it to skip long polling the SQS Queue "{QUEUE_NAME}"') + LOGGER.critical('starting...') + LOGGER.warning(f'A circuit breaker SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" is being checked TTL of {CIRCUIT_BREAKER_CACHE_TTL} seconds, create it to skip long polling the SQS Queue "{QUEUE_NAME}"') + # print('starting...', flush=True) + # print(f'A circuit breaker SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" is being checked TTL of {CIRCUIT_BREAKER_CACHE_TTL} seconds, create it to skip long polling the SQS Queue "{QUEUE_NAME}"') sigterm_handler = SignalHandler(SIGTERM) sigint_handler = SignalHandler(SIGINT) looper = 0 @@ -166,10 +211,12 @@ def main(): else: looper += 1 if check_circuit_breaker(): - print('💥' * looper, flush=True) + LOGGER.info('💥' * looper) + # print('💥' * looper, flush=True) sleep(WAIT_TIME_SECONDS) else: - print('🏃' * looper, flush=True) + LOGGER.info('🏃' * looper) + # print('🏃' * looper, flush=True) messages = SQS_QUEUE.receive_messages( MaxNumberOfMessages=10, # 1-10 messages WaitTimeSeconds=WAIT_TIME_SECONDS, # 0-20 seconds @@ -179,23 +226,27 @@ def main(): # Print out the messages - in case some are not processed... for message in messages: log_message(message) for message in messages: - print(f'INFO(main): message id: {message.message_id}', flush=True) + LOGGER.info(f'main message id: {message.message_id}') + # print(f'INFO(main): message id: {message.message_id}', flush=True) try: # message.change_visibility( # VisibilityTimeout=MAX_SQS_VISIBILITY_TIMEOUT, # ) - process_message(message) - message.delete() + if process_message(message): + message.delete() except Exception as e: ## Set back to the SQS Queue's default visibility timeout upon an exception # message.change_visibility( # VisibilityTimeout=int(SQS_QUEUE.attributes['VisibilityTimeout']), # ) - print(f'exception while processing message: {repr(e)}', flush=True) + LOGGER.error(f'exception while processing message: {repr(e)}') + # print(f'exception while processing message: {repr(e)}', flush=True) continue - print('...ending', flush=True) + LOGGER.critical('...ending') + # print('...ending', flush=True) if __name__ == '__main__': main() else: - print(f'{__name__} is not accounted for', flush=True) \ No newline at end of file + LOGGER.warning(f'{__name__} is not accounted for') + # print(f'{__name__} is not accounted for', flush=True) \ No newline at end of file From 13c145dcf5beb318f73a45207c17575d7a00184e Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 20:00:14 +0000 Subject: [PATCH 07/33] fix: set the platform to amd64 --- src/patterns/gen-ai/aws-llama-index-data-loader/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 19acb8ab..95c45717 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -13,7 +13,7 @@ import { join } from 'node:path'; import { Duration, RemovalPolicy, Stack } from 'aws-cdk-lib'; import { FlowLogDestination } from 'aws-cdk-lib/aws-ec2'; -import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; +import { DockerImageAsset, Platform } from 'aws-cdk-lib/aws-ecr-assets'; import { Cluster, ContainerImage } from 'aws-cdk-lib/aws-ecs'; import { QueueProcessingFargateService } from 'aws-cdk-lib/aws-ecs-patterns'; import { Effect, PolicyStatement, ServicePrincipal } from 'aws-cdk-lib/aws-iam'; @@ -222,8 +222,9 @@ export class LlamaIndexDataLoader extends BaseClass { const asset = new DockerImageAsset(this, 'Image', { directory: this.dockerImageAssetDirectory, buildArgs: { - PYTHON_TAG: '3.12-nonexistant', + // PYTHON_TAG: 'latest', }, + platform: Platform.LINUX_AMD64, }); const cluster = new Cluster(this, 'Cluster', { From 01ae910ae5debe6e27b3716d8d3bca6e1e7ee9d6 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 21:26:42 +0000 Subject: [PATCH 08/33] fix: update and minimize requirements --- .../docker/requirements.txt | 97 +------------------ 1 file changed, 1 insertion(+), 96 deletions(-) diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt b/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt index 8a9eeed6..0aba381e 100644 --- a/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/requirements.txt @@ -1,99 +1,4 @@ -aiobotocore==2.15.0 -aiohappyeyeballs==2.4.0 -aiohttp==3.10.5 -aioitertools==0.12.0 -aiosignal==1.3.1 -annotated-types==0.7.0 -anthropic==0.28.1 -anyio==4.4.0 -attrs==24.2.0 -beautifulsoup4==4.12.3 -boto3==1.35.9 -botocore==1.35.16 +boto3==1.35.36 cachetools==5.5.0 -certifi==2024.8.30 -charset-normalizer==3.3.2 -click==8.1.7 -dataclasses-json==0.6.7 -Deprecated==1.2.14 -dirtyjson==1.0.8 -distro==1.9.0 -Events==0.5 -filelock==3.15.4 -frozenlist==1.4.1 -fsspec==2024.9.0 -greenlet==3.0.3 -h11==0.14.0 -httpcore==1.0.5 -httpx==0.27.2 -huggingface-hub==0.24.6 -idna==3.8 -Jinja2==3.1.4 -jiter==0.5.0 -jmespath==1.0.1 -joblib==1.4.2 jsonpickle==3.3.0 -llama-index-core==0.11.2 -llama-index-embeddings-bedrock==0.3.0 -llama-index-llms-anthropic==0.2.1 -llama-index-llms-bedrock==0.2.0 -llama-index-readers-file==0.2.1 llama-index-readers-s3==0.2.0 -llama-index-vector-stores-opensearch==0.2.0 -llvmlite==0.43.0 -MarkupSafe==2.1.5 -marshmallow==3.22.0 -more-itertools==10.5.0 -mpmath==1.3.0 -multidict==6.0.5 -mypy-extensions==1.0.0 -nest-asyncio==1.6.0 -networkx==3.3 -nltk==3.9.1 -numba==0.60.0 -numpy==1.26.4 -nvidia-cublas-cu12==12.1.3.1 -nvidia-cuda-cupti-cu12==12.1.105 -nvidia-cuda-nvrtc-cu12==12.1.105 -nvidia-cuda-runtime-cu12==12.1.105 -nvidia-cudnn-cu12==9.1.0.70 -nvidia-cufft-cu12==11.0.2.54 -nvidia-curand-cu12==10.3.2.106 -nvidia-cusolver-cu12==11.4.5.107 -nvidia-cusparse-cu12==12.1.0.106 -nvidia-nccl-cu12==2.20.5 -nvidia-nvjitlink-cu12==12.6.68 -nvidia-nvtx-cu12==12.1.105 -openai-whisper @ git+https://github.com/openai/whisper.git@279133e3107392276dc509148da1f41bfb532c7e -opensearch-py==2.7.1 -packaging==24.1 -pandas==2.2.2 -pillow==10.4.0 -pydantic==2.8.2 -pydantic_core==2.20.1 -pypdf==4.3.1 -python-dateutil==2.9.0.post0 -pytz==2024.1 -PyYAML==6.0.2 -regex==2024.7.24 -requests==2.32.3 -s3fs==2024.9.0 -s3transfer==0.10.2 -six==1.16.0 -sniffio==1.3.1 -soupsieve==2.6 -SQLAlchemy==2.0.32 -striprtf==0.0.26 -sympy==1.13.2 -tenacity==8.5.0 -tiktoken==0.7.0 -tokenizers==0.20.0 -torch==2.4.1 -tqdm==4.66.5 -triton==3.0.0 -typing-inspect==0.9.0 -typing_extensions==4.12.2 -tzdata==2024.1 -urllib3==2.2.2 -wrapt==1.16.0 -yarl==1.9.4 From d77715368c22a4799aaff363dcd8a128a3d251ef Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 21:31:22 +0000 Subject: [PATCH 09/33] fix: collapse multi-line --- .../gen-ai/aws-llama-index-data-loader/index.ts | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 95c45717..f077d6a4 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -91,18 +91,9 @@ export class LlamaIndexDataLoader extends BaseClass { this.addObservabilityToConstruct(baseProps); // Update the optional properties to their defaults - this.dockerImageAssetDirectory = props.dockerImageAssetDirectory ?? - join( - __dirname, - '..', - '..', - '..', - '..', - 'resources', - 'gen-ai', - 'aws-llama-index-data-loader', - 'docker', - ); + this.dockerImageAssetDirectory = props.dockerImageAssetDirectory ?? join( + __dirname, '..', '..', '..', '..', 'resources', 'gen-ai', 'aws-llama-index-data-loader', 'docker', + ); this.memoryLimitMiB = props.memoryLimitMiB ?? 2048; this.containerLoggingLevel = props.containerLoggingLevel ?? 'WARNING'; From f56e525157f417f538cd62fcf46677378dcd1c17 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 16:22:34 -0700 Subject: [PATCH 10/33] fix: add llamaindex architecture --- docs/generative_ai_cdk_constructs.drawio | 53 ++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/docs/generative_ai_cdk_constructs.drawio b/docs/generative_ai_cdk_constructs.drawio index ed5d254d..5ee6211d 100644 --- a/docs/generative_ai_cdk_constructs.drawio +++ b/docs/generative_ai_cdk_constructs.drawio @@ -1017,6 +1017,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From cd83e66a4f11b9857d884cd0260518cbd3c7f170 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 8 Oct 2024 23:25:59 +0000 Subject: [PATCH 11/33] feat: add architecture diagram for llamaindex data loader --- .../architecture.png | Bin 0 -> 61897 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/patterns/gen-ai/aws-llama-index-data-loader/architecture.png diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/architecture.png b/src/patterns/gen-ai/aws-llama-index-data-loader/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1d57a2f26fc94c0062ec29ddfc417f89feacafeb GIT binary patch literal 61897 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 V=h)7>90UIzNGkl3E&kZ+{{Xrm`6K`U literal 0 HcmV?d00001 From 92718bbd913a2312a04699a30d383bd0fefa6d64 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Wed, 9 Oct 2024 00:55:03 +0000 Subject: [PATCH 12/33] feat: add tests and update README --- .../aws-llama-index-data-loader/README.md | 5 + .../aws-llama-index-data-loader.test.ts | 134 ++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md index cb7571e9..eace577a 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md @@ -25,6 +25,7 @@ - [Pattern Properties](#pattern-properties) - [Methods](#methods) - [Default properties](#default-properties) + - [Architecture](#architecture) - [Cost](#cost) - [Security](#security) - [Supported AWS Regions](#supported-aws-regions) @@ -97,6 +98,10 @@ Out-of-the-box implementation of the construct without any override will set the TBD +## Architecture + +![Architecture Diagram](architecture.png) + ## Cost You are responsible for the cost of the AWS services used while running this construct. diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts new file mode 100644 index 00000000..6a834785 --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts @@ -0,0 +1,134 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +import { + join, +// resolve, +} from 'node:path'; +import * as cdk from 'aws-cdk-lib'; +import { + Template, +// Match, +} from 'aws-cdk-lib/assertions'; +import { AwsSolutionsChecks } from 'cdk-nag'; +import { + LlamaIndexDataLoader, + LlamaIndexDataLoaderProps, +} from '../../../../src/patterns/gen-ai/aws-llama-index-data-loader'; + +describe('LlamaIndex Data Loader Construct Default', () => { + let app: cdk.App; + let llamaIndexDataLoaderTemplate: Template; + let llamaIndexDataLoaderTestConstruct: LlamaIndexDataLoader; + + afterAll(() => { + console.log('Test completed'); + }); + + beforeAll(() => { + app = new cdk.App(); + cdk.Aspects.of(app).add(new AwsSolutionsChecks()); + const llamaIndexDataLoaderTestStack = new cdk.Stack(app, 'llamaIndexDataLoaderTestStack', { + env: { account: cdk.Aws.ACCOUNT_ID, region: cdk.Aws.REGION }, + }); + const props: LlamaIndexDataLoaderProps = { + }; + + llamaIndexDataLoaderTestConstruct = new LlamaIndexDataLoader( + llamaIndexDataLoaderTestStack, + 'LlamaIndexDataLoader', + props, + ); + llamaIndexDataLoaderTemplate = Template.fromStack(llamaIndexDataLoaderTestStack); + }); + + test('S3 bucket count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::S3::Bucket', 3); + expect(llamaIndexDataLoaderTestConstruct.outputBucket).not.toBeNull; + }); + + test('SNS count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SNS::Topic', 1); + expect(llamaIndexDataLoaderTestConstruct.snsTopic).not.toBeNull; + }); + + test('Subscription count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SNS::Subscription', 1); + }); + test('Parameter count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SSM::Parameter', 1); + }); + test('Cluster count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ECS::Cluster', 1); + }); + test('Service count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ECS::Service', 1); + }); + test('Task count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ECS::TaskDefinition', 1); + }); + test('AutoScaling target count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ApplicationAutoScaling::ScalableTarget', 1); + }); + test('AutoScaling policy count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ApplicationAutoScaling::ScalingPolicy', 3); + }); + test('Alarm count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::CloudWatch::Alarm', 2); + }); + + test('SQS count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SQS::Queue', 2); + expect(llamaIndexDataLoaderTestConstruct.sqsQueue).not.toBeNull; + }); + +}); + +describe('LlamaIndex Data Loader Construct Properties', () => { + let app: cdk.App; + let llamaIndexDataLoaderTemplate: Template; + let llamaIndexDataLoaderTestConstruct: LlamaIndexDataLoader; + + afterAll(() => { + console.log('Test completed'); + }); + + beforeAll(() => { + app = new cdk.App(); + cdk.Aspects.of(app).add(new AwsSolutionsChecks()); + const llamaIndexDataLoaderTestStack = new cdk.Stack(app, 'llamaIndexDataLoaderTestStack', { + env: { account: cdk.Aws.ACCOUNT_ID, region: cdk.Aws.REGION }, + }); + const props: LlamaIndexDataLoaderProps = { + dockerImageAssetDirectory: join( + //resolve(), '..', '..', '..', '..', 'resources', 'gen-ai', 'aws-llama-index-data-loader', 'docker', + 'resources', 'gen-ai', 'aws-llama-index-data-loader', 'docker', + ), + containerLoggingLevel: 'INFO', + memoryLimitMiB: 1024, + observability: false, + stage: 'test', + }; + + llamaIndexDataLoaderTestConstruct = new LlamaIndexDataLoader( + llamaIndexDataLoaderTestStack, + 'LlamaIndexDataLoader', + props, + ); + llamaIndexDataLoaderTemplate = Template.fromStack(llamaIndexDataLoaderTestStack); + }); + + test('Memory', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SQS::Queue', 2); + expect(llamaIndexDataLoaderTestConstruct.sqsQueue).not.toBeNull; + }); +}); \ No newline at end of file From 5051034a84c03d63c6024d6d3a96d09b42b11daf Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 00:03:32 +0000 Subject: [PATCH 13/33] fix: move output bucket up --- .../aws-llama-index-data-loader/index.ts | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index f077d6a4..895ce852 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -115,6 +115,32 @@ export class LlamaIndexDataLoader extends BaseClass { }, blockPublicAccess: BlockPublicAccess.BLOCK_ALL, }); + const outputBucket = new Bucket(this, 'Output', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: logBucket, + serverAccessLogsPrefix: 'output-bucket-access-logs', + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + this.outputBucket = outputBucket; + const rawBucket = new Bucket(this, 'Raw', { enforceSSL: true, versioned: true, @@ -184,31 +210,6 @@ export class LlamaIndexDataLoader extends BaseClass { }); this.ssmParameter = circuitBreakerParameter; - const outputBucket = new Bucket(this, 'Output', { - enforceSSL: true, - versioned: true, - serverAccessLogsBucket: logBucket, - serverAccessLogsPrefix: 'output-bucket-access-logs', - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - lifecycleRules: [ - { - id: 'AbortIncompleteMultipartUpload', - enabled: true, - abortIncompleteMultipartUploadAfter: Duration.days(1), - }, - ], - }); - this.outputBucket = outputBucket; const asset = new DockerImageAsset(this, 'Image', { directory: this.dockerImageAssetDirectory, From 623921e7b7cecbbab440990e62b8ceefb1ffd51f Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 00:04:04 +0000 Subject: [PATCH 14/33] feat(doc): add the construct to the main README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 01a4f9c0..667d36c0 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,8 @@ The following constructs are available in the library: | [Content Generation](./src/patterns/gen-ai/aws-contentgen-appsync-lambda/README.md) | Generate images from text using Amazon titan-image-generator-v1 or stability.stable-diffusion-xl-v1 model. | AWS Lambda, Amazon Bedrock, AWS AppSync | | [Web crawler](./src/patterns/gen-ai/aws-web-crawler/README.md) | Crawl websites and RSS feeds on a schedule and store changeset data in an Amazon Simple Storage Service bucket. | AWS Lambda, AWS Batch, AWS Fargate, Amazon DynamoDB | | [Amazon Bedrock Monitoring (Amazon CloudWatch Dashboard)](./src/patterns/gen-ai/aws-bedrock-cw-dashboard/README.md) | Amazon CloudWatch dashboard to monitor model usage from Amazon Bedrock. | Amazon CloudWatch | +| [TXT to SQL](./src/patterns/gen-ai/aws-bedrock-cw-dashboard/README.md) | Amazon CloudWatch dashboard to monitor model usage from Amazon Bedrock. | Amazon CloudWatch | +| [LlamaIndex Data Loading](./src/patterns/gen-ai/aws-bedrock-cw-dashboard/README.md) | Amazon CloudWatch dashboard to monitor model usage from Amazon Bedrock. | Amazon CloudWatch | ### L2 Constructs From ea836ff253cf5a2d05ae89700a279cb973dd969d Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 02:04:27 +0000 Subject: [PATCH 15/33] fix: add join for running tests single --- .../aws-llama-index-data-loader.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts index 6a834785..607e6d85 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts @@ -32,6 +32,7 @@ describe('LlamaIndex Data Loader Construct Default', () => { afterAll(() => { console.log('Test completed'); + join(); }); beforeAll(() => { From 7639ba7d1aab9cf1a00678311d88e5056eb95fb6 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 02:13:28 +0000 Subject: [PATCH 16/33] feat: document --- apidocs/classes/LlamaIndexDataLoader.md | 6 +++ .../aws-llama-index-data-loader/index.ts | 37 ++++++++++++------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/apidocs/classes/LlamaIndexDataLoader.md b/apidocs/classes/LlamaIndexDataLoader.md index d4846c13..d0a0d2fb 100644 --- a/apidocs/classes/LlamaIndexDataLoader.md +++ b/apidocs/classes/LlamaIndexDataLoader.md @@ -112,6 +112,12 @@ The tree node. *** +### queueProcessingFargateService + +> `readonly` **queueProcessingFargateService**: `QueueProcessingFargateService` + +*** + ### retention > **retention**: `RetentionDays` = `logs.RetentionDays.TEN_YEARS` diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 895ce852..8893ed8d 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -72,6 +72,7 @@ export class LlamaIndexDataLoader extends BaseClass { public readonly sqsQueue: Queue; public readonly ssmParameter: StringParameter; public readonly outputBucket: Bucket; + public readonly queueProcessingFargateService: QueueProcessingFargateService; private readonly dockerImageAssetDirectory: string; private readonly memoryLimitMiB: number; @@ -100,6 +101,7 @@ export class LlamaIndexDataLoader extends BaseClass { const bucketKey = new Key(this, 'LogBucketKey', { enableKeyRotation: true, }); + let bucketsInvolved = []; const logBucket = new Bucket(this, 'LogBucket', { enforceSSL: true, versioned: true, @@ -115,6 +117,7 @@ export class LlamaIndexDataLoader extends BaseClass { }, blockPublicAccess: BlockPublicAccess.BLOCK_ALL, }); + bucketsInvolved.push(logBucket); const outputBucket = new Bucket(this, 'Output', { enforceSSL: true, versioned: true, @@ -140,7 +143,9 @@ export class LlamaIndexDataLoader extends BaseClass { ], }); this.outputBucket = outputBucket; + bucketsInvolved.push(outputBucket); + // if (!props.dockerImageAssetDirectory) { const rawBucket = new Bucket(this, 'Raw', { enforceSSL: true, versioned: true, @@ -165,6 +170,7 @@ export class LlamaIndexDataLoader extends BaseClass { }, ], }); + bucketsInvolved.push(rawBucket); this.s3Bucket = rawBucket; const topicKey = new Key(this, 'TopicKey', { @@ -250,33 +256,35 @@ export class LlamaIndexDataLoader extends BaseClass { { lower: 500, change: +5 }, ], }); + this.queueProcessingFargateService = queueProcessingFargateService; - queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { + + this.queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), }); - queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + this.queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ['s3:GetObject'], resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], }), ); - queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + this.queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ['s3:PutObject'], resources: [outputBucket.bucketArn, outputBucket.bucketArn + '/*'], }), ); - bucketKey.grantDecrypt(queueProcessingFargateService.taskDefinition.taskRole); - queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( + bucketKey.grantDecrypt(this.queueProcessingFargateService.taskDefinition.taskRole); + this.queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ['kms:GenerateDataKey'], resources: [bucketKey.keyArn], }), ); - circuitBreakerParameter.grantRead(queueProcessingFargateService.taskDefinition.taskRole); + circuitBreakerParameter.grantRead(this.queueProcessingFargateService.taskDefinition.taskRole); //////////////////////////////////////////////////////////////////////// // NagSuppressions @@ -290,7 +298,7 @@ export class LlamaIndexDataLoader extends BaseClass { ], true, ); - NagSuppressions.addResourceSuppressions([logBucket, rawBucket, outputBucket], + NagSuppressions.addResourceSuppressions(bucketsInvolved, [ { id: 'HIPAA.Security-S3BucketReplicationEnabled', @@ -312,7 +320,7 @@ export class LlamaIndexDataLoader extends BaseClass { ], true, ); - NagSuppressions.addResourceSuppressions([cluster.vpc], + NagSuppressions.addResourceSuppressions([this.queueProcessingFargateService.cluster.vpc], [ { id: 'HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled', @@ -378,7 +386,7 @@ export class LlamaIndexDataLoader extends BaseClass { true, ); } - NagSuppressions.addResourceSuppressions(queueProcessingFargateService, + NagSuppressions.addResourceSuppressions(this.queueProcessingFargateService, [ { id: 'AwsSolutions-ECS2', @@ -387,7 +395,7 @@ export class LlamaIndexDataLoader extends BaseClass { ], true, ); - NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, + NagSuppressions.addResourceSuppressions(this.queueProcessingFargateService.taskDefinition, [ { id: 'AwsSolutions-IAM5', @@ -404,10 +412,10 @@ export class LlamaIndexDataLoader extends BaseClass { // Inline policies let taskDefinitionRoles = [ - queueProcessingFargateService.taskDefinition.taskRole, + this.queueProcessingFargateService.taskDefinition.taskRole, ]; - if (queueProcessingFargateService.taskDefinition.executionRole) { - taskDefinitionRoles.push(queueProcessingFargateService.taskDefinition.executionRole); + if (this.queueProcessingFargateService.taskDefinition.executionRole) { + taskDefinitionRoles.push(this.queueProcessingFargateService.taskDefinition.executionRole); } NagSuppressions.addResourceSuppressions(taskDefinitionRoles, [ @@ -432,7 +440,7 @@ export class LlamaIndexDataLoader extends BaseClass { ); // Unencrypted CloudWatch logging - NagSuppressions.addResourceSuppressions(queueProcessingFargateService.taskDefinition, + NagSuppressions.addResourceSuppressions(this.queueProcessingFargateService.taskDefinition, [ { id: 'HIPAA.Security-CloudWatchLogGroupEncrypted', @@ -469,5 +477,6 @@ export class LlamaIndexDataLoader extends BaseClass { ], true, ); + // } } } \ No newline at end of file From 1efa45eb01e4e1e70538111f3c49fa3a1cd5b5ae Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 02:38:47 +0000 Subject: [PATCH 17/33] fix: remove defaults --- apidocs/classes/LlamaIndexDataLoader.md | 24 ------------------- .../aws-llama-index-data-loader/index.ts | 13 ---------- .../aws-llama-index-data-loader.test.ts | 16 +++++++++---- 3 files changed, 12 insertions(+), 41 deletions(-) diff --git a/apidocs/classes/LlamaIndexDataLoader.md b/apidocs/classes/LlamaIndexDataLoader.md index d0a0d2fb..6182c12d 100644 --- a/apidocs/classes/LlamaIndexDataLoader.md +++ b/apidocs/classes/LlamaIndexDataLoader.md @@ -130,30 +130,6 @@ Default log retention config for all constructs *** -### s3Bucket? - -> `readonly` `optional` **s3Bucket**: `Bucket` - -*** - -### snsTopic - -> `readonly` **snsTopic**: `Topic` - -*** - -### sqsQueue - -> `readonly` **sqsQueue**: `Queue` - -*** - -### ssmParameter - -> `readonly` **ssmParameter**: `StringParameter` - -*** - ### stage > **stage**: `string` diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 8893ed8d..fb48fa53 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -67,10 +67,6 @@ export interface LlamaIndexDataLoaderProps { export class LlamaIndexDataLoader extends BaseClass { - public readonly s3Bucket?: Bucket; - public readonly snsTopic: Topic; - public readonly sqsQueue: Queue; - public readonly ssmParameter: StringParameter; public readonly outputBucket: Bucket; public readonly queueProcessingFargateService: QueueProcessingFargateService; @@ -171,7 +167,6 @@ export class LlamaIndexDataLoader extends BaseClass { ], }); bucketsInvolved.push(rawBucket); - this.s3Bucket = rawBucket; const topicKey = new Key(this, 'TopicKey', { enableKeyRotation: true, @@ -180,7 +175,6 @@ export class LlamaIndexDataLoader extends BaseClass { enforceSSL: true, masterKey: topicKey, }); - this.snsTopic = topic; topicKey.addToResourcePolicy( new PolicyStatement({ actions: ['kms:Decrypt', 'kms:GenerateDataKey*'], @@ -204,7 +198,6 @@ export class LlamaIndexDataLoader extends BaseClass { }), }, }); - this.sqsQueue = queue; topic.addSubscription( new SqsSubscription(queue), @@ -214,14 +207,9 @@ export class LlamaIndexDataLoader extends BaseClass { const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { stringValue: 'False', }); - this.ssmParameter = circuitBreakerParameter; - const asset = new DockerImageAsset(this, 'Image', { directory: this.dockerImageAssetDirectory, - buildArgs: { - // PYTHON_TAG: 'latest', - }, platform: Platform.LINUX_AMD64, }); @@ -258,7 +246,6 @@ export class LlamaIndexDataLoader extends BaseClass { }); this.queueProcessingFargateService = queueProcessingFargateService; - this.queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), }); diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts index 607e6d85..0f5d5090 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts @@ -59,7 +59,6 @@ describe('LlamaIndex Data Loader Construct Default', () => { test('SNS count', () => { llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SNS::Topic', 1); - expect(llamaIndexDataLoaderTestConstruct.snsTopic).not.toBeNull; }); test('Subscription count', () => { @@ -89,7 +88,7 @@ describe('LlamaIndex Data Loader Construct Default', () => { test('SQS count', () => { llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SQS::Queue', 2); - expect(llamaIndexDataLoaderTestConstruct.sqsQueue).not.toBeNull; + expect(llamaIndexDataLoaderTestConstruct.queueProcessingFargateService.sqsQueue).not.toBeNull; }); }); @@ -128,8 +127,17 @@ describe('LlamaIndex Data Loader Construct Properties', () => { llamaIndexDataLoaderTemplate = Template.fromStack(llamaIndexDataLoaderTestStack); }); - test('Memory', () => { + test('Cluster count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ECS::Cluster', 1); + }); + test('Service count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ECS::Service', 1); + }); + test('Task count', () => { + llamaIndexDataLoaderTemplate.resourceCountIs('AWS::ECS::TaskDefinition', 1); + }); + test('Queue', () => { llamaIndexDataLoaderTemplate.resourceCountIs('AWS::SQS::Queue', 2); - expect(llamaIndexDataLoaderTestConstruct.sqsQueue).not.toBeNull; + expect(llamaIndexDataLoaderTestConstruct.queueProcessingFargateService.sqsQueue).not.toBeNull; }); }); \ No newline at end of file From 8d6a800e453453dc020e905855d0aabc3f802ffa Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 03:44:03 +0000 Subject: [PATCH 18/33] fix: only deploy resources if no docker path --- .../aws-llama-index-data-loader/index.ts | 141 +++++++++--------- 1 file changed, 67 insertions(+), 74 deletions(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index fb48fa53..a9b733b2 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -140,54 +140,14 @@ export class LlamaIndexDataLoader extends BaseClass { }); this.outputBucket = outputBucket; bucketsInvolved.push(outputBucket); - - // if (!props.dockerImageAssetDirectory) { - const rawBucket = new Bucket(this, 'Raw', { - enforceSSL: true, - versioned: true, - serverAccessLogsBucket: logBucket, - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - serverAccessLogsPrefix: 'raw-bucket-access-logs', - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - lifecycleRules: [ - { - id: 'AbortIncompleteMultipartUpload', - enabled: true, - abortIncompleteMultipartUploadAfter: Duration.days(1), - }, - ], - }); - bucketsInvolved.push(rawBucket); - - const topicKey = new Key(this, 'TopicKey', { - enableKeyRotation: true, + // Create a new SSM Parameter holding a String + const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { + stringValue: 'False', }); - const topic = new Topic(this, 'Topic', { - enforceSSL: true, - masterKey: topicKey, + const asset = new DockerImageAsset(this, 'Image', { + directory: this.dockerImageAssetDirectory, + platform: Platform.LINUX_AMD64, }); - topicKey.addToResourcePolicy( - new PolicyStatement({ - actions: ['kms:Decrypt', 'kms:GenerateDataKey*'], - resources: ['*'], - principals: [new ServicePrincipal('s3.amazonaws.com')], - }), - ); - topic.grantPublish(new ServicePrincipal('s3.amazonaws.com')); - rawBucket.addEventNotification( - EventType.OBJECT_CREATED, - new SnsDestination(topic), - ); - const queue = new Queue(this, 'Queue', { visibilityTimeout: Duration.seconds(300), enforceSSL: true, @@ -198,26 +158,10 @@ export class LlamaIndexDataLoader extends BaseClass { }), }, }); - - topic.addSubscription( - new SqsSubscription(queue), - ); - - // Create a new SSM Parameter holding a String - const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { - stringValue: 'False', - }); - - const asset = new DockerImageAsset(this, 'Image', { - directory: this.dockerImageAssetDirectory, - platform: Platform.LINUX_AMD64, - }); - - const cluster = new Cluster(this, 'Cluster', { - containerInsights: true, - }); const queueProcessingFargateService = new QueueProcessingFargateService(this, 'Service', { - cluster: cluster, + cluster: new Cluster(this, 'Cluster', { + containerInsights: true, + }), memoryLimitMiB: this.memoryLimitMiB, queue: queue, image: ContainerImage.fromDockerImageAsset(asset), @@ -246,16 +190,67 @@ export class LlamaIndexDataLoader extends BaseClass { }); this.queueProcessingFargateService = queueProcessingFargateService; + // Setup Default S3 Example if Docker asset directory is missing + if (!props.dockerImageAssetDirectory) { + const rawBucket = new Bucket(this, 'Raw', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: logBucket, + encryption: BucketEncryption.KMS, + encryptionKey: bucketKey, + bucketKeyEnabled: true, + serverAccessLogsPrefix: 'raw-bucket-access-logs', + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + bucketsInvolved.push(rawBucket); + const topicKey = new Key(this, 'TopicKey', { + enableKeyRotation: true, + }); + const topic = new Topic(this, 'Topic', { + enforceSSL: true, + masterKey: topicKey, + }); + topicKey.addToResourcePolicy( + new PolicyStatement({ + actions: ['kms:Decrypt', 'kms:GenerateDataKey*'], + resources: ['*'], + principals: [new ServicePrincipal('s3.amazonaws.com')], + }), + ); + topic.grantPublish(new ServicePrincipal('s3.amazonaws.com')); + rawBucket.addEventNotification( + EventType.OBJECT_CREATED, + new SnsDestination(topic), + ); + topic.addSubscription( + new SqsSubscription(queue), + ); + this.queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['s3:GetObject'], + resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], + }), + ); + } this.queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), }); - this.queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( - new PolicyStatement({ - effect: Effect.ALLOW, - actions: ['s3:GetObject'], - resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], - }), - ); + circuitBreakerParameter.grantRead(this.queueProcessingFargateService.taskDefinition.taskRole); this.queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( new PolicyStatement({ effect: Effect.ALLOW, @@ -271,7 +266,6 @@ export class LlamaIndexDataLoader extends BaseClass { resources: [bucketKey.keyArn], }), ); - circuitBreakerParameter.grantRead(this.queueProcessingFargateService.taskDefinition.taskRole); //////////////////////////////////////////////////////////////////////// // NagSuppressions @@ -464,6 +458,5 @@ export class LlamaIndexDataLoader extends BaseClass { ], true, ); - // } } } \ No newline at end of file From 3aa97a7a16c6f8f227d9ee7ac41b771dbfb44253 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 04:42:09 +0000 Subject: [PATCH 19/33] feat: allow passing in a VPC --- apidocs/interfaces/LlamaIndexDataLoaderProps.md | 16 ++++++++++++++++ .../gen-ai/aws-llama-index-data-loader/index.ts | 9 ++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/apidocs/interfaces/LlamaIndexDataLoaderProps.md b/apidocs/interfaces/LlamaIndexDataLoaderProps.md index 156bf200..ea5c2ee5 100644 --- a/apidocs/interfaces/LlamaIndexDataLoaderProps.md +++ b/apidocs/interfaces/LlamaIndexDataLoaderProps.md @@ -86,3 +86,19 @@ Value will be appended to resources name. ```ts - _dev ``` + +*** + +### vpc? + +> `readonly` `optional` **vpc**: `IVpc` + +#### Description + +the VPC to use + +#### Default + +```ts +undefined +``` diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index a9b733b2..67bf939d 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -12,7 +12,7 @@ */ import { join } from 'node:path'; import { Duration, RemovalPolicy, Stack } from 'aws-cdk-lib'; -import { FlowLogDestination } from 'aws-cdk-lib/aws-ec2'; +import { FlowLogDestination, IVpc } from 'aws-cdk-lib/aws-ec2'; import { DockerImageAsset, Platform } from 'aws-cdk-lib/aws-ecr-assets'; import { Cluster, ContainerImage } from 'aws-cdk-lib/aws-ecs'; import { QueueProcessingFargateService } from 'aws-cdk-lib/aws-ecs-patterns'; @@ -49,6 +49,12 @@ export interface LlamaIndexDataLoaderProps { */ readonly containerLoggingLevel?: string; + /** + * @description the VPC to use + * @default undefined + */ + readonly vpc?: IVpc; + /** * Value will be appended to resources name. * @@ -162,6 +168,7 @@ export class LlamaIndexDataLoader extends BaseClass { cluster: new Cluster(this, 'Cluster', { containerInsights: true, }), + vpc: props.vpc, memoryLimitMiB: this.memoryLimitMiB, queue: queue, image: ContainerImage.fromDockerImageAsset(asset), From 7646676b37d45dd8cb03cea232684892b864cf7b Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Thu, 10 Oct 2024 22:00:00 -0700 Subject: [PATCH 20/33] feat: add aws-llama-index-data-loader architecture update --- docs/generative_ai_cdk_constructs.drawio | 39 ++++++++++-------- .../architecture.png | Bin 61897 -> 1192098 bytes 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/docs/generative_ai_cdk_constructs.drawio b/docs/generative_ai_cdk_constructs.drawio index 5ee6211d..0f97752d 100644 --- a/docs/generative_ai_cdk_constructs.drawio +++ b/docs/generative_ai_cdk_constructs.drawio @@ -1017,57 +1017,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + + + + - + diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/architecture.png b/src/patterns/gen-ai/aws-llama-index-data-loader/architecture.png index 1d57a2f26fc94c0062ec29ddfc417f89feacafeb..3f89e67eaa58ea47bcfa70f148a38255a86b0e4a 100644 GIT binary patch literal 1192098 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

F<2sfU6u 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

Zt$^Lip*X~NSzs5s?;NDka>47B_9E7+}+ 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%0DZjhj;Lpy<@!Q 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�^Z*>9c@^!|@iVEi#k zaUIIy_Ak@v91;4UUqwKMtVmaZ(c9;%CjJP^=ls1_a(`ssIJs2$^>GdA)zT1#<0LY* zHp3w`iu%9iy(@GYpk==Q*Sz=1fv0Z=zt(5m{!^1m&n`k%m;7u|8tfgXDp8wf?)ICM zzBXcX56Fon);N{3ng6uw8x{+gUI?sh?q*WPW(Q%TQvlMNS* zzVD+S8=;haK84(9tg;X)X<|_3mynsmTTYxV;7i*Ju6Y<=qN-*LI)wV+J!=qbF7Wrr z^R+_fF`DJiC7`9K(mft2$5jXV9fkrR2i!RqnfjZXb^KtA6_Be5g!``?pwKG9LZBFz z?GTm|>D;-hEit;a431uZxXe;^NPxiUqLDv{uL)~{U!Rg+6BW$srus~KH9Wp$6hwAf zbUfrwmnv3!#$doS4I@vp&`+&gTP-?DihEnNk{qq zp$7soL-`&hzBHx@4}1p{a^UoGvj=t-Bt;qnEPOdz)LbJgfCrz(zD|E+=&LkvfiLgqql+E4`>QW%<5xDlAA|_UGdTLA#qIs2v`pO;>1G=56i$%bliJ&hI1$bM zJ=xY_akl&z$;BS?-Ra){X5_&P%@ACVuMa=y>bu5OEndi}d?nX*Zu0W`5~{n$KY)>9 z7do33kZJ0lt}Ksx%tkTRz0Bitx`x*CAzRZ4eLQ?a^WyFGJoF%W@`;%^_6+eaP}x?b zYUjfxJ5|=!3TB6U$G?8LEjr!1VEJwBQ66}ZMPC*LfJ-YHS8G`15&B$Sd$0<#5z+#v2cvzt|+sc`0_f_f3LWMvGXO}wXcVk$Y;?~{w)vp&$ zo<7M0i;JYm{D+4ccht!fdU#amZWtv8sf_(&PmO*hU&+SB#^<@;}zvCrmoPwU(qwf3f?-R2ag)q3bIb}>U zTp6L5&+5Apk5@o6P=K<7gUzXgty)k^p|8|mb1>pAM~;oq`Hx`(#1CgPbrpH+J2G@r zj>RJ~CiL@;z(nJFK*h+(7WMek_?9bo;1?Iv=^0FM3%l(J?=Rk2n0pOwG%wCq6?M-n zPV$faKHT9uX4J`{hd2P-A#`dDA%_;N^EojmA~Ult{m!S%E(0rW<58wVpxwTxPM>GV z!x??fym}N##?`%(f@xmr54M!5d)@Buwv=xKVL}zZ?^4FMl{1%uc!KMRR#o|YKUTZ< zMzh?(HslnBYhO?ti)FWFWSQADlAO@amJ_5S+&-X24fJmINy!*gk8=<~F_^!NwK zIM;7M+RK1eGj?8#;0xfp;zI|J%iz(*BApxeqXF~7SuzA3;<-gwI_y6+nuHZ_9r~vQ z^W2O6?yKbyUE*rF=^#@CRYn~PCB59)>fBWX+zRYu33u25H2{TN3Ko>~cy^C?lkZJ` z)M~^(n&xD4dH{a&Vj9=mN$?ZAF-?rZfvVxi=1d}=j(qyz!z&y8M%Xmr)2Exp1l$~r zqehOf#i(axCOoUEc#+vfTQUEk(d8hhK)Z0s0ifeveF4X>Vif*)V018yslPZ4M4jbC zQS~J_02PYfMzT{;GxLs5D82yUK0nY<<{8(lf3s>>+;x?y;SZ@a2#y|P6Dj?{B}$YS z_3N4YDGv2Q1JwbwkY5LH%q8mcHLt|a`zKY;J>Yo5)YO;0AKvHvl1?uIg6n-=xT7y2 zD@f3h?wLK&PQO-jCOJQS!-E6E>f`aA)p`#ZUZ_0;6<_tfoz2TrQUe2$R%uΝZ(J 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%0Deh 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≈QzcHxcp^_ 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


egrUNvMX27V#E)n(|AVNx<|# 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

r?g{7=_XPqOH0 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 literal 61897 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 V=h)7>90UIzNGkl3E&kZ+{{Xrm`6K`U From 0448378423376de65a16a65f424bfb2166d70ba6 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 06:35:22 +0000 Subject: [PATCH 21/33] feat: add ability to pass in output bucket --- .../interfaces/LlamaIndexDataLoaderProps.md | 16 ++ .../aws-llama-index-data-loader/index.ts | 158 ++++++++++-------- .../aws-llama-index-data-loader.test.ts | 3 + 3 files changed, 110 insertions(+), 67 deletions(-) diff --git a/apidocs/interfaces/LlamaIndexDataLoaderProps.md b/apidocs/interfaces/LlamaIndexDataLoaderProps.md index ea5c2ee5..2a16ced1 100644 --- a/apidocs/interfaces/LlamaIndexDataLoaderProps.md +++ b/apidocs/interfaces/LlamaIndexDataLoaderProps.md @@ -75,6 +75,22 @@ used. Best practive to enable by default. *** +### outputBucket? + +> `readonly` `optional` **outputBucket**: `Bucket` + +#### Description + +the S3 output to use + +#### Default + +```ts +undefined +``` + +*** + ### stage? > `readonly` `optional` **stage**: `string` diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 67bf939d..582ca1b8 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -49,6 +49,12 @@ export interface LlamaIndexDataLoaderProps { */ readonly containerLoggingLevel?: string; + /** + * @description the S3 output to use + * @default undefined + */ + readonly outputBucket?: Bucket; + /** * @description the VPC to use * @default undefined @@ -76,6 +82,8 @@ export class LlamaIndexDataLoader extends BaseClass { public readonly outputBucket: Bucket; public readonly queueProcessingFargateService: QueueProcessingFargateService; + private readonly logBucket?: Bucket; + private readonly bucketKey?: Key; private readonly dockerImageAssetDirectory: string; private readonly memoryLimitMiB: number; private readonly containerLoggingLevel: string; @@ -99,53 +107,55 @@ export class LlamaIndexDataLoader extends BaseClass { ); this.memoryLimitMiB = props.memoryLimitMiB ?? 2048; this.containerLoggingLevel = props.containerLoggingLevel ?? 'WARNING'; - - const bucketKey = new Key(this, 'LogBucketKey', { - enableKeyRotation: true, - }); let bucketsInvolved = []; - const logBucket = new Bucket(this, 'LogBucket', { - enforceSSL: true, - versioned: true, - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - }); - bucketsInvolved.push(logBucket); - const outputBucket = new Bucket(this, 'Output', { - enforceSSL: true, - versioned: true, - serverAccessLogsBucket: logBucket, - serverAccessLogsPrefix: 'output-bucket-access-logs', - encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, - bucketKeyEnabled: true, - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - removalPolicy: RemovalPolicy.DESTROY, - autoDeleteObjects: true, - objectLockEnabled: true, - objectLockDefaultRetention: { - mode: ObjectLockMode.GOVERNANCE, - duration: Duration.days(1), - }, - lifecycleRules: [ - { - id: 'AbortIncompleteMultipartUpload', - enabled: true, - abortIncompleteMultipartUploadAfter: Duration.days(1), + if (props.outputBucket) { + this.outputBucket = props.outputBucket; + } else { + this.bucketKey = new Key(this, 'LogBucketKey', { + enableKeyRotation: true, + }); + this.logBucket = new Bucket(this, 'LogBucket', { + enforceSSL: true, + versioned: true, + encryption: BucketEncryption.KMS, + encryptionKey: this.bucketKey, + bucketKeyEnabled: true, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), }, - ], - }); - this.outputBucket = outputBucket; - bucketsInvolved.push(outputBucket); + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + }); + bucketsInvolved.push(this.logBucket); + this.outputBucket = new Bucket(this, 'Output', { + enforceSSL: true, + versioned: true, + serverAccessLogsBucket: this.logBucket, + serverAccessLogsPrefix: 'output-bucket-access-logs', + encryption: BucketEncryption.KMS, + encryptionKey: this.bucketKey, + bucketKeyEnabled: true, + blockPublicAccess: BlockPublicAccess.BLOCK_ALL, + removalPolicy: RemovalPolicy.DESTROY, + autoDeleteObjects: true, + objectLockEnabled: true, + objectLockDefaultRetention: { + mode: ObjectLockMode.GOVERNANCE, + duration: Duration.days(1), + }, + lifecycleRules: [ + { + id: 'AbortIncompleteMultipartUpload', + enabled: true, + abortIncompleteMultipartUploadAfter: Duration.days(1), + }, + ], + }); + } + bucketsInvolved.push(this.outputBucket); // Create a new SSM Parameter holding a String const circuitBreakerParameter = new StringParameter(this, 'CircuitBreaker', { stringValue: 'False', @@ -183,7 +193,7 @@ export class LlamaIndexDataLoader extends BaseClass { environment: { CIRCUIT_BREAKER_SSM_PARAMETER_NAME: circuitBreakerParameter.parameterName, LOGGING_LEVEL: this.containerLoggingLevel, - BUCKET_NAME: outputBucket.bucketName, + BUCKET_NAME: this.outputBucket.bucketName, }, minScalingCapacity: 0, maxScalingCapacity: 10, @@ -202,9 +212,9 @@ export class LlamaIndexDataLoader extends BaseClass { const rawBucket = new Bucket(this, 'Raw', { enforceSSL: true, versioned: true, - serverAccessLogsBucket: logBucket, + serverAccessLogsBucket: this.logBucket, encryption: BucketEncryption.KMS, - encryptionKey: bucketKey, + encryptionKey: this.bucketKey, bucketKeyEnabled: true, serverAccessLogsPrefix: 'raw-bucket-access-logs', blockPublicAccess: BlockPublicAccess.BLOCK_ALL, @@ -253,39 +263,53 @@ export class LlamaIndexDataLoader extends BaseClass { resources: [rawBucket.bucketArn, rawBucket.bucketArn + '/*'], }), ); + if (rawBucket.encryptionKey) { + rawBucket.encryptionKey.grantDecrypt(this.queueProcessingFargateService.taskDefinition.taskRole); + this.queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['kms:GenerateDataKey'], + resources: [rawBucket.encryptionKey.keyArn], + }), + ); + } } this.queueProcessingFargateService.cluster.vpc.addFlowLog('FlowLog', { - destination: FlowLogDestination.toS3(logBucket, 'vpc-flow-logs'), + destination: FlowLogDestination.toS3(this.logBucket, 'vpc-flow-logs'), }); circuitBreakerParameter.grantRead(this.queueProcessingFargateService.taskDefinition.taskRole); this.queueProcessingFargateService.taskDefinition.addToTaskRolePolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ['s3:PutObject'], - resources: [outputBucket.bucketArn, outputBucket.bucketArn + '/*'], - }), - ); - bucketKey.grantDecrypt(this.queueProcessingFargateService.taskDefinition.taskRole); - this.queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( - new PolicyStatement({ - effect: Effect.ALLOW, - actions: ['kms:GenerateDataKey'], - resources: [bucketKey.keyArn], + resources: [this.outputBucket.bucketArn, this.outputBucket.bucketArn + '/*'], }), ); + if (this.outputBucket.encryptionKey) { + this.outputBucket.encryptionKey.grantDecrypt(this.queueProcessingFargateService.taskDefinition.taskRole); + this.queueProcessingFargateService.taskDefinition.taskRole.addToPrincipalPolicy( + new PolicyStatement({ + effect: Effect.ALLOW, + actions: ['kms:GenerateDataKey'], + resources: [this.outputBucket.encryptionKey.keyArn], + }), + ); + } //////////////////////////////////////////////////////////////////////// // NagSuppressions //////////////////////////////////////////////////////////////////////// - NagSuppressions.addResourceSuppressions(logBucket, - [ - { - id: 'AwsSolutions-S1', - reason: 'There is no need to enable access logging for the AccessLogs bucket.', - }, - ], - true, - ); + if (this.logBucket) { + NagSuppressions.addResourceSuppressions(this.logBucket, + [ + { + id: 'AwsSolutions-S1', + reason: 'There is no need to enable access logging for the AccessLogs bucket.', + }, + ], + true, + ); + } NagSuppressions.addResourceSuppressions(bucketsInvolved, [ { diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts index 0f5d5090..5bdc298c 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/aws-llama-index-data-loader.test.ts @@ -19,6 +19,7 @@ import { Template, // Match, } from 'aws-cdk-lib/assertions'; +import { Bucket } from 'aws-cdk-lib/aws-s3'; import { AwsSolutionsChecks } from 'cdk-nag'; import { LlamaIndexDataLoader, @@ -37,6 +38,7 @@ describe('LlamaIndex Data Loader Construct Default', () => { beforeAll(() => { app = new cdk.App(); + Bucket.toString(); // because typescript errors if not used... cdk.Aspects.of(app).add(new AwsSolutionsChecks()); const llamaIndexDataLoaderTestStack = new cdk.Stack(app, 'llamaIndexDataLoaderTestStack', { env: { account: cdk.Aws.ACCOUNT_ID, region: cdk.Aws.REGION }, @@ -115,6 +117,7 @@ describe('LlamaIndex Data Loader Construct Properties', () => { ), containerLoggingLevel: 'INFO', memoryLimitMiB: 1024, + outputBucket: new Bucket(llamaIndexDataLoaderTestStack, 'OutputBucket', {}), observability: false, stage: 'test', }; From 939f10cd7f851fec6781ca94dcefaedb5a6c7202 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 06:57:31 +0000 Subject: [PATCH 22/33] feat(test): add snapshot tests --- .gitignore | 9 + .npmignore | 2 + .projen/tasks.json | 69 + package.json | 5 + ...efaultTestDeployAssertE49B1ECE.assets.json | 19 + ...aultTestDeployAssertE49B1ECE.template.json | 36 + ...a-index-data-loader-integ-test.assets.json | 46 + ...index-data-loader-integ-test.template.json | 3682 +++++++++++++++++ .../integ.json | 19 + .../aws-llama-index-data-loader.integ.ts | 35 + 10 files changed, 3922 insertions(+) create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.template.json create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json create mode 100644 test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts diff --git a/.gitignore b/.gitignore index ac3afd58..249ee8ac 100644 --- a/.gitignore +++ b/.gitignore @@ -65,6 +65,15 @@ test/patterns/gen-ai/aws-aoss-cw-dashboard/integ-tests/aws-aoss-cw-dashboard.int test/patterns/gen-ai/aws-aoss-cw-dashboard/integ-tests/aws-aoss-cw-dashboard.integ.snapshot/**/manifest.json test/patterns/gen-ai/aws-aoss-cw-dashboard/integ-tests/aws-aoss-cw-dashboard.integ.snapshot/tree.json test/patterns/gen-ai/aws-aoss-cw-dashboard/integ-tests/aws-aoss-cw-dashboard.integ.snapshot/**/tree.json +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/asset.* +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/**/asset.* +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/cdk.out +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/**/cdk.out +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/manifest.json +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/**/manifest.json +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/tree.json +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/**/tree.json !/.github/workflows/github-merit-badger.yml !/.github/workflows/monthly-repo-metrics.yml !/.github/workflows/auto-approve.yml diff --git a/.npmignore b/.npmignore index b523d851..1f169094 100644 --- a/.npmignore +++ b/.npmignore @@ -24,6 +24,8 @@ tsconfig.tsbuildinfo !.jsii test/patterns/gen-ai/aws-aoss-cw-dashboard/integ-tests/.tmp test/patterns/gen-ai/aws-aoss-cw-dashboard/integ-tests/aws-aoss-cw-dashboard.integ.snapshot +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp +test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot /docs/ header.js .eslintrc.json diff --git a/.projen/tasks.json b/.projen/tasks.json index 931ef94d..ed8c64df 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -227,12 +227,78 @@ } ] }, + "integ:aws-llama-index-data-loader:assert": { + "name": "integ:aws-llama-index-data-loader:assert", + "description": "assert the snapshot of integration test 'aws-llama-index-data-loader'", + "steps": [ + { + "exec": "[ -d \"test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot\" ] || (echo \"No snapshot available for integration test 'aws-llama-index-data-loader'. Run 'projen integ:aws-llama-index-data-loader:deploy' to capture.\" && exit 1)" + }, + { + "exec": "cdk synth --app \"ts-node -P tsconfig.dev.json test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata -o test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp/aws-llama-index-data-loader.integ/assert.cdk.out > /dev/null" + }, + { + "exec": "diff -r -x asset.* -x cdk.out -x manifest.json -x tree.json test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp/aws-llama-index-data-loader.integ/assert.cdk.out/" + } + ] + }, + "integ:aws-llama-index-data-loader:deploy": { + "name": "integ:aws-llama-index-data-loader:deploy", + "description": "deploy integration test 'aws-llama-index-data-loader' and capture snapshot", + "steps": [ + { + "exec": "rm -fr test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp/aws-llama-index-data-loader.integ/deploy.cdk.out" + }, + { + "exec": "cdk deploy --app \"ts-node -P tsconfig.dev.json test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata '**' --require-approval=never -o test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp/aws-llama-index-data-loader.integ/deploy.cdk.out" + }, + { + "exec": "rm -fr test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot" + }, + { + "exec": "mv test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp/aws-llama-index-data-loader.integ/deploy.cdk.out test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot" + }, + { + "spawn": "integ:aws-llama-index-data-loader:destroy" + } + ] + }, + "integ:aws-llama-index-data-loader:destroy": { + "name": "integ:aws-llama-index-data-loader:destroy", + "description": "destroy integration test 'aws-llama-index-data-loader'", + "steps": [ + { + "exec": "cdk destroy --app test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot '**' --no-version-reporting" + } + ] + }, + "integ:aws-llama-index-data-loader:snapshot": { + "name": "integ:aws-llama-index-data-loader:snapshot", + "description": "update snapshot for integration test \"aws-llama-index-data-loader\"", + "steps": [ + { + "exec": "cdk synth --app \"ts-node -P tsconfig.dev.json test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata -o test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot > /dev/null" + } + ] + }, + "integ:aws-llama-index-data-loader:watch": { + "name": "integ:aws-llama-index-data-loader:watch", + "description": "watch integration test 'aws-llama-index-data-loader' (without updating snapshots)", + "steps": [ + { + "exec": "cdk watch --app \"ts-node -P tsconfig.dev.json test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata '**' -o test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/.tmp/aws-llama-index-data-loader.integ/deploy.cdk.out" + } + ] + }, "integ:snapshot-all": { "name": "integ:snapshot-all", "description": "update snapshot for all integration tests", "steps": [ { "spawn": "integ:aws-aoss-cw-dashboard:snapshot" + }, + { + "spawn": "integ:aws-llama-index-data-loader:snapshot" } ] }, @@ -375,6 +441,9 @@ }, { "spawn": "integ:aws-aoss-cw-dashboard:assert" + }, + { + "spawn": "integ:aws-llama-index-data-loader:assert" } ] }, diff --git a/package.json b/package.json index e647abe1..9382735b 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,11 @@ "integ:aws-aoss-cw-dashboard:destroy": "npx projen integ:aws-aoss-cw-dashboard:destroy", "integ:aws-aoss-cw-dashboard:snapshot": "npx projen integ:aws-aoss-cw-dashboard:snapshot", "integ:aws-aoss-cw-dashboard:watch": "npx projen integ:aws-aoss-cw-dashboard:watch", + "integ:aws-llama-index-data-loader:assert": "npx projen integ:aws-llama-index-data-loader:assert", + "integ:aws-llama-index-data-loader:deploy": "npx projen integ:aws-llama-index-data-loader:deploy", + "integ:aws-llama-index-data-loader:destroy": "npx projen integ:aws-llama-index-data-loader:destroy", + "integ:aws-llama-index-data-loader:snapshot": "npx projen integ:aws-llama-index-data-loader:snapshot", + "integ:aws-llama-index-data-loader:watch": "npx projen integ:aws-llama-index-data-loader:watch", "integ:snapshot-all": "npx projen integ:snapshot-all", "package": "npx projen package", "package-all": "npx projen package-all", diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json new file mode 100644 index 00000000..7cac6c6a --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json @@ -0,0 +1,19 @@ +{ + "version": "36.3.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "ServiceTestDefaultTestDeployAssertE49B1ECE.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.template.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.template.json new file mode 100644 index 00000000..ad9d0fb7 --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json new file mode 100644 index 00000000..80c78512 --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json @@ -0,0 +1,46 @@ +{ + "version": "36.3.0", + "files": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { + "source": { + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "d38f4083561b68e337d8542a65fb59e3c0b2899feb716564a2b0f88993303f77": { + "source": { + "path": "aws-llama-index-data-loader-integ-test.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "d38f4083561b68e337d8542a65fb59e3c0b2899feb716564a2b0f88993303f77.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": { + "6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c": { + "source": { + "directory": "asset.6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c", + "platform": "linux/amd64" + }, + "destinations": { + "current_account-current_region": { + "repositoryName": "cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}", + "imageTag": "6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-image-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + } +} \ No newline at end of file diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json new file mode 100644 index 00000000..d942612b --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json @@ -0,0 +1,3682 @@ +{ + "Resources": { + "testLogBucketKey32CC4D1D": { + "Type": "AWS::KMS::Key", + "Properties": { + "EnableKeyRotation": true, + "KeyPolicy": { + "Statement": [ + { + "Action": "kms:*", + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::", + { + "Ref": "AWS::AccountId" + }, + ":root" + ] + ] + } + }, + "Resource": "*" + }, + { + "Action": [ + "kms:Decrypt", + "kms:Encrypt", + "kms:ReEncrypt*", + "kms:GenerateDataKey*" + ], + "Effect": "Allow", + "Principal": { + "Service": "logging.s3.amazonaws.com" + }, + "Resource": "*" + } + ], + "Version": "2012-10-17" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testLogBucket7F298F3B": { + "Type": "AWS::S3::Bucket", + "Properties": { + "AccessControl": "LogDeliveryWrite", + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "BucketKeyEnabled": true, + "ServerSideEncryptionByDefault": { + "KMSMasterKeyID": { + "Fn::GetAtt": [ + "testLogBucketKey32CC4D1D", + "Arn" + ] + }, + "SSEAlgorithm": "aws:kms" + } + } + ] + }, + "ObjectLockConfiguration": { + "ObjectLockEnabled": "Enabled", + "Rule": { + "DefaultRetention": { + "Days": 1, + "Mode": "GOVERNANCE" + } + } + }, + "ObjectLockEnabled": true, + "OwnershipControls": { + "Rules": [ + { + "ObjectOwnership": "ObjectWriter" + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "Tags": [ + { + "Key": "aws-cdk:auto-delete-objects", + "Value": "true" + } + ], + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "There is no need to enable access logging for the AccessLogs bucket.", + "id": "AwsSolutions-S1" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testLogBucketPolicy8C5750D7": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testLogBucket7F298F3B" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testLogBucket7F298F3B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testLogBucket7F298F3B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:PutBucketPolicy", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testLogBucket7F298F3B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testLogBucket7F298F3B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "There is no need to enable access logging for the AccessLogs bucket.", + "id": "AwsSolutions-S1" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testLogBucketAutoDeleteObjectsCustomResource14E7FB3C": { + "Type": "Custom::S3AutoDeleteObjects", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", + "Arn" + ] + }, + "BucketName": { + "Ref": "testLogBucket7F298F3B" + } + }, + "DependsOn": [ + "testLogBucketPolicy8C5750D7" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "There is no need to enable access logging for the AccessLogs bucket.", + "id": "AwsSolutions-S1" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testOutput66980038": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "BucketKeyEnabled": true, + "ServerSideEncryptionByDefault": { + "KMSMasterKeyID": { + "Fn::GetAtt": [ + "testLogBucketKey32CC4D1D", + "Arn" + ] + }, + "SSEAlgorithm": "aws:kms" + } + } + ] + }, + "LifecycleConfiguration": { + "Rules": [ + { + "AbortIncompleteMultipartUpload": { + "DaysAfterInitiation": 1 + }, + "Id": "AbortIncompleteMultipartUpload", + "Status": "Enabled" + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "testLogBucket7F298F3B" + }, + "LogFilePrefix": "output-bucket-access-logs" + }, + "ObjectLockConfiguration": { + "ObjectLockEnabled": "Enabled", + "Rule": { + "DefaultRetention": { + "Days": 1, + "Mode": "GOVERNANCE" + } + } + }, + "ObjectLockEnabled": true, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "Tags": [ + { + "Key": "aws-cdk:auto-delete-objects", + "Value": "true" + } + ], + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testOutputPolicy4B2D7F76": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testOutput66980038" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testOutput66980038", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testOutput66980038", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:PutBucketPolicy", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testOutput66980038", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testOutput66980038", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testOutputAutoDeleteObjectsCustomResource019BF1CF": { + "Type": "Custom::S3AutoDeleteObjects", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", + "Arn" + ] + }, + "BucketName": { + "Ref": "testOutput66980038" + } + }, + "DependsOn": [ + "testOutputPolicy4B2D7F76" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testCircuitBreaker564CBB3F": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Type": "String", + "Value": "False" + } + }, + "testDeadLetterQueueA5F7D72D": { + "Type": "AWS::SQS::Queue", + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "testDeadLetterQueuePolicy14C080A7": { + "Type": "AWS::SQS::QueuePolicy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": { + "Fn::GetAtt": [ + "testDeadLetterQueueA5F7D72D", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "testDeadLetterQueueA5F7D72D" + } + ] + } + }, + "testQueueA1A031F3": { + "Type": "AWS::SQS::Queue", + "Properties": { + "RedrivePolicy": { + "deadLetterTargetArn": { + "Fn::GetAtt": [ + "testDeadLetterQueueA5F7D72D", + "Arn" + ] + }, + "maxReceiveCount": 3 + }, + "VisibilityTimeout": 300 + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "testQueuePolicy2FC53456": { + "Type": "AWS::SQS::QueuePolicy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "Arn" + ] + } + }, + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "testTopic20AA7407" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "testQueueA1A031F3" + } + ] + } + }, + "testQueueawsllamaindexdataloaderintegtestTopic13943F88EC3EDAB2": { + "Type": "AWS::SNS::Subscription", + "Properties": { + "Endpoint": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "Arn" + ] + }, + "Protocol": "sqs", + "TopicArn": { + "Ref": "testTopic20AA7407" + } + }, + "DependsOn": [ + "testQueuePolicy2FC53456" + ] + }, + "testClusterE41B7119": { + "Type": "AWS::ECS::Cluster", + "Properties": { + "ClusterSettings": [ + { + "Name": "containerInsights", + "Value": "enabled" + } + ] + } + }, + "testClusterVpc0A7EFC4B": { + "Type": "AWS::EC2::VPC", + "Properties": { + "CidrBlock": "10.0.0.0/16", + "EnableDnsHostnames": true, + "EnableDnsSupport": true, + "InstanceTenancy": "default", + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet1SubnetC8224979": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.0.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet1" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet1RouteTable95F06E01": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet1" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet1RouteTableAssociation84B5DA23": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "testClusterVpcPublicSubnet1RouteTable95F06E01" + }, + "SubnetId": { + "Ref": "testClusterVpcPublicSubnet1SubnetC8224979" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet1DefaultRouteF4ABA912": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "testClusterVpcIGWAAAC5F13" + }, + "RouteTableId": { + "Ref": "testClusterVpcPublicSubnet1RouteTable95F06E01" + } + }, + "DependsOn": [ + "testClusterVpcVPCGWF6B79041" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet1EIP5C9D39EB": { + "Type": "AWS::EC2::EIP", + "Properties": { + "Domain": "vpc", + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet1" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet1NATGateway754A80BD": { + "Type": "AWS::EC2::NatGateway", + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ + "testClusterVpcPublicSubnet1EIP5C9D39EB", + "AllocationId" + ] + }, + "SubnetId": { + "Ref": "testClusterVpcPublicSubnet1SubnetC8224979" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet1" + } + ] + }, + "DependsOn": [ + "testClusterVpcPublicSubnet1DefaultRouteF4ABA912", + "testClusterVpcPublicSubnet1RouteTableAssociation84B5DA23" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet2SubnetF8C60632": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.64.0/18", + "MapPublicIpOnLaunch": true, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Public" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Public" + }, + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet2" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet2RouteTable0DE2163B": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet2" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet2RouteTableAssociation9B22B47D": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "testClusterVpcPublicSubnet2RouteTable0DE2163B" + }, + "SubnetId": { + "Ref": "testClusterVpcPublicSubnet2SubnetF8C60632" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet2DefaultRouteC2E8FD46": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": { + "Ref": "testClusterVpcIGWAAAC5F13" + }, + "RouteTableId": { + "Ref": "testClusterVpcPublicSubnet2RouteTable0DE2163B" + } + }, + "DependsOn": [ + "testClusterVpcVPCGWF6B79041" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet2EIP1F54B40A": { + "Type": "AWS::EC2::EIP", + "Properties": { + "Domain": "vpc", + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet2" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPublicSubnet2NATGateway58CC8B29": { + "Type": "AWS::EC2::NatGateway", + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ + "testClusterVpcPublicSubnet2EIP1F54B40A", + "AllocationId" + ] + }, + "SubnetId": { + "Ref": "testClusterVpcPublicSubnet2SubnetF8C60632" + }, + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PublicSubnet2" + } + ] + }, + "DependsOn": [ + "testClusterVpcPublicSubnet2DefaultRouteC2E8FD46", + "testClusterVpcPublicSubnet2RouteTableAssociation9B22B47D" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet1SubnetD8A3DD84": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 0, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.128.0/18", + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Private" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Private" + }, + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PrivateSubnet1" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet1RouteTableAB209658": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PrivateSubnet1" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet1RouteTableAssociation707F217E": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "testClusterVpcPrivateSubnet1RouteTableAB209658" + }, + "SubnetId": { + "Ref": "testClusterVpcPrivateSubnet1SubnetD8A3DD84" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet1DefaultRouteB2722C76": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "NatGatewayId": { + "Ref": "testClusterVpcPublicSubnet1NATGateway754A80BD" + }, + "RouteTableId": { + "Ref": "testClusterVpcPrivateSubnet1RouteTableAB209658" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet2Subnet9652B709": { + "Type": "AWS::EC2::Subnet", + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ + 1, + { + "Fn::GetAZs": "" + } + ] + }, + "CidrBlock": "10.0.192.0/18", + "MapPublicIpOnLaunch": false, + "Tags": [ + { + "Key": "aws-cdk:subnet-name", + "Value": "Private" + }, + { + "Key": "aws-cdk:subnet-type", + "Value": "Private" + }, + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PrivateSubnet2" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet2RouteTableA45C2A3F": { + "Type": "AWS::EC2::RouteTable", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/PrivateSubnet2" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet2RouteTableAssociation63F1ABBF": { + "Type": "AWS::EC2::SubnetRouteTableAssociation", + "Properties": { + "RouteTableId": { + "Ref": "testClusterVpcPrivateSubnet2RouteTableA45C2A3F" + }, + "SubnetId": { + "Ref": "testClusterVpcPrivateSubnet2Subnet9652B709" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcPrivateSubnet2DefaultRoute6882F728": { + "Type": "AWS::EC2::Route", + "Properties": { + "DestinationCidrBlock": "0.0.0.0/0", + "NatGatewayId": { + "Ref": "testClusterVpcPublicSubnet2NATGateway58CC8B29" + }, + "RouteTableId": { + "Ref": "testClusterVpcPrivateSubnet2RouteTableA45C2A3F" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcIGWAAAC5F13": { + "Type": "AWS::EC2::InternetGateway", + "Properties": { + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcVPCGWF6B79041": { + "Type": "AWS::EC2::VPCGatewayAttachment", + "Properties": { + "InternetGatewayId": { + "Ref": "testClusterVpcIGWAAAC5F13" + }, + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testClusterVpcFlowLog9503638E": { + "Type": "AWS::EC2::FlowLog", + "Properties": { + "LogDestination": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testLogBucket7F298F3B", + "Arn" + ] + }, + "/vpc-flow-logs" + ] + ] + }, + "LogDestinationType": "s3", + "ResourceId": { + "Ref": "testClusterVpc0A7EFC4B" + }, + "ResourceType": "VPC", + "Tags": [ + { + "Key": "Name", + "Value": "aws-llama-index-data-loader-integ-test/test/Cluster/Vpc/FlowLog" + } + ], + "TrafficType": "ALL" + }, + "DependsOn": [ + "testLogBucketAutoDeleteObjectsCustomResource14E7FB3C", + "testLogBucketPolicy8C5750D7" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCSubnetAutoAssignPublicIpDisabled" + }, + { + "reason": "default vpc creation", + "id": "HIPAA.Security-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "NIST.800.53.R5-VPCNoUnrestrictedRouteToIGW" + }, + { + "reason": "default vpc creation", + "id": "PCI.DSS.321-VPCNoUnrestrictedRouteToIGW" + } + ] + } + } + }, + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "ecs-tasks.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + }, + { + "reason": "The ecr:GetAuthorizationToken requires \"*\"", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*", + "Resource::/*", + "Resource::/*" + ] + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupRetentionPeriod" + } + ] + } + } + }, + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:ChangeMessageVisibility", + "sqs:GetQueueUrl", + "sqs:DeleteMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "Arn" + ] + } + }, + { + "Action": "s3:GetObject", + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "kms:Decrypt", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testLogBucketKey32CC4D1D", + "Arn" + ] + } + }, + { + "Action": "kms:GenerateDataKey", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testLogBucketKey32CC4D1D", + "Arn" + ] + } + }, + { + "Action": [ + "ssm:DescribeParameters", + "ssm:GetParameters", + "ssm:GetParameter", + "ssm:GetParameterHistory" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ssm:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":parameter/", + { + "Ref": "testCircuitBreaker564CBB3F" + } + ] + ] + } + }, + { + "Action": "s3:PutObject", + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "testOutput66980038", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testOutput66980038", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "Roles": [ + { + "Ref": "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + }, + { + "reason": "The ecr:GetAuthorizationToken requires \"*\"", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*", + "Resource::/*", + "Resource::/*" + ] + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupRetentionPeriod" + } + ] + } + } + }, + "testServiceQueueProcessingTaskDefA998758D": { + "Type": "AWS::ECS::TaskDefinition", + "Properties": { + "ContainerDefinitions": [ + { + "Environment": [ + { + "Name": "CIRCUIT_BREAKER_SSM_PARAMETER_NAME", + "Value": { + "Ref": "testCircuitBreaker564CBB3F" + } + }, + { + "Name": "LOGGING_LEVEL", + "Value": "WARNING" + }, + { + "Name": "BUCKET_NAME", + "Value": { + "Ref": "testOutput66980038" + } + }, + { + "Name": "QUEUE_NAME", + "Value": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "QueueName" + ] + } + } + ], + "Essential": true, + "HealthCheck": { + "Command": [ + "CMD-SHELL", + "/usr/src/app/healthcheck.sh" + ], + "Interval": 30, + "Retries": 3, + "StartPeriod": 5, + "Timeout": 30 + }, + "Image": { + "Fn::Sub": "${AWS::AccountId}.dkr.ecr.${AWS::Region}.${AWS::URLSuffix}/cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}:6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c" + }, + "LogConfiguration": { + "LogDriver": "awslogs", + "Options": { + "awslogs-group": { + "Ref": "testServiceQueueProcessingTaskDefQueueProcessingContainerLogGroupD7294126" + }, + "awslogs-stream-prefix": "Service", + "awslogs-region": { + "Ref": "AWS::Region" + } + } + }, + "Name": "QueueProcessingContainer" + } + ], + "Cpu": "256", + "ExecutionRoleArn": { + "Fn::GetAtt": [ + "testServiceQueueProcessingTaskDefExecutionRole95E572DA", + "Arn" + ] + }, + "Family": "awsllamaindexdataloaderintegtestServiceQueueProcessingTaskDefFCE41A75", + "Memory": "2048", + "NetworkMode": "awsvpc", + "RequiresCompatibilities": [ + "FARGATE" + ], + "TaskRoleArn": { + "Fn::GetAtt": [ + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493", + "Arn" + ] + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + }, + { + "reason": "The ecr:GetAuthorizationToken requires \"*\"", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*", + "Resource::/*", + "Resource::/*" + ] + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupRetentionPeriod" + } + ] + } + } + }, + "testServiceQueueProcessingTaskDefQueueProcessingContainerLogGroupD7294126": { + "Type": "AWS::Logs::LogGroup", + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + }, + { + "reason": "The ecr:GetAuthorizationToken requires \"*\"", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*", + "Resource::/*", + "Resource::/*" + ] + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupRetentionPeriod" + } + ] + } + } + }, + "testServiceQueueProcessingTaskDefExecutionRole95E572DA": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "ecs-tasks.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + }, + { + "reason": "The ecr:GetAuthorizationToken requires \"*\"", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*", + "Resource::/*", + "Resource::/*" + ] + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupRetentionPeriod" + } + ] + } + } + }, + "testServiceQueueProcessingTaskDefExecutionRoleDefaultPolicy45353975": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ecr:BatchCheckLayerAvailability", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ecr:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":repository/", + { + "Fn::Sub": "cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + }, + { + "Action": "ecr:GetAuthorizationToken", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "testServiceQueueProcessingTaskDefQueueProcessingContainerLogGroupD7294126", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testServiceQueueProcessingTaskDefExecutionRoleDefaultPolicy45353975", + "Roles": [ + { + "Ref": "testServiceQueueProcessingTaskDefExecutionRole95E572DA" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + }, + { + "reason": "The ecr:GetAuthorizationToken requires \"*\"", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*", + "Resource::/*", + "Resource::/*" + ] + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are acceptable for this use case.", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupEncrypted" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "HIPAA.Security-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R4-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "NIST.800.53.R5-CloudWatchLogGroupRetentionPeriod" + }, + { + "reason": "CloudWatch logging is not encrypted", + "id": "PCI.DSS.321-CloudWatchLogGroupRetentionPeriod" + } + ] + } + } + }, + "testServiceQueueProcessingFargateService288F5A76": { + "Type": "AWS::ECS::Service", + "Properties": { + "Cluster": { + "Ref": "testClusterE41B7119" + }, + "DeploymentConfiguration": { + "Alarms": { + "AlarmNames": [], + "Enable": false, + "Rollback": false + }, + "MaximumPercent": 200, + "MinimumHealthyPercent": 50 + }, + "EnableECSManagedTags": false, + "LaunchType": "FARGATE", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "AssignPublicIp": "DISABLED", + "SecurityGroups": [ + { + "Fn::GetAtt": [ + "testServiceQueueProcessingFargateServiceSecurityGroup84A3E440", + "GroupId" + ] + } + ], + "Subnets": [ + { + "Ref": "testClusterVpcPrivateSubnet1SubnetD8A3DD84" + }, + { + "Ref": "testClusterVpcPrivateSubnet2Subnet9652B709" + } + ] + } + }, + "TaskDefinition": { + "Ref": "testServiceQueueProcessingTaskDefA998758D" + } + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceSecurityGroup84A3E440": { + "Type": "AWS::EC2::SecurityGroup", + "Properties": { + "GroupDescription": "aws-llama-index-data-loader-integ-test/test/Service/QueueProcessingFargateService/SecurityGroup", + "SecurityGroupEgress": [ + { + "CidrIp": "0.0.0.0/0", + "Description": "Allow all outbound traffic by default", + "IpProtocol": "-1" + } + ], + "VpcId": { + "Ref": "testClusterVpc0A7EFC4B" + } + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceTaskCountTarget359EAD66": { + "Type": "AWS::ApplicationAutoScaling::ScalableTarget", + "Properties": { + "MaxCapacity": 10, + "MinCapacity": 0, + "ResourceId": { + "Fn::Join": [ + "", + [ + "service/", + { + "Ref": "testClusterE41B7119" + }, + "/", + { + "Fn::GetAtt": [ + "testServiceQueueProcessingFargateService288F5A76", + "Name" + ] + } + ] + ] + }, + "RoleARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::", + { + "Ref": "AWS::AccountId" + }, + ":role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService" + ] + ] + }, + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs" + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceTaskCountTargetCpuScalingDA2C4394": { + "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", + "Properties": { + "PolicyName": "awsllamaindexdataloaderintegtestServiceQueueProcessingFargateServiceTaskCountTargetCpuScalingE026A7FA", + "PolicyType": "TargetTrackingScaling", + "ScalingTargetId": { + "Ref": "testServiceQueueProcessingFargateServiceTaskCountTarget359EAD66" + }, + "TargetTrackingScalingPolicyConfiguration": { + "PredefinedMetricSpecification": { + "PredefinedMetricType": "ECSServiceAverageCPUUtilization" + }, + "TargetValue": 50 + } + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerPolicy459B950A": { + "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", + "Properties": { + "PolicyName": "awsllamaindexdataloaderintegtestServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerPolicy60563297", + "PolicyType": "StepScaling", + "ScalingTargetId": { + "Ref": "testServiceQueueProcessingFargateServiceTaskCountTarget359EAD66" + }, + "StepScalingPolicyConfiguration": { + "AdjustmentType": "ChangeInCapacity", + "MetricAggregationType": "Maximum", + "StepAdjustments": [ + { + "MetricIntervalUpperBound": 0, + "ScalingAdjustment": -1 + } + ] + } + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerAlarm07FF0B76": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "AlarmActions": [ + { + "Ref": "testServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerPolicy459B950A" + } + ], + "AlarmDescription": "Lower threshold scaling alarm", + "ComparisonOperator": "LessThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "QueueName", + "Value": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "QueueName" + ] + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "ApproximateNumberOfMessagesVisible", + "Namespace": "AWS/SQS", + "Period": 300, + "Statistic": "Maximum", + "Threshold": 0 + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperPolicy7C58C4AB": { + "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", + "Properties": { + "PolicyName": "awsllamaindexdataloaderintegtestServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperPolicyB35BAAEC", + "PolicyType": "StepScaling", + "ScalingTargetId": { + "Ref": "testServiceQueueProcessingFargateServiceTaskCountTarget359EAD66" + }, + "StepScalingPolicyConfiguration": { + "AdjustmentType": "ChangeInCapacity", + "MetricAggregationType": "Maximum", + "StepAdjustments": [ + { + "MetricIntervalLowerBound": 0, + "MetricIntervalUpperBound": 99, + "ScalingAdjustment": 1 + }, + { + "MetricIntervalLowerBound": 99, + "MetricIntervalUpperBound": 499, + "ScalingAdjustment": 1 + }, + { + "MetricIntervalLowerBound": 499, + "ScalingAdjustment": 5 + } + ] + } + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperAlarm2A34497B": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "AlarmActions": [ + { + "Ref": "testServiceQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperPolicy7C58C4AB" + } + ], + "AlarmDescription": "Upper threshold scaling alarm", + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "QueueName", + "Value": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "QueueName" + ] + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "ApproximateNumberOfMessagesVisible", + "Namespace": "AWS/SQS", + "Period": 300, + "Statistic": "Maximum", + "Threshold": 1 + }, + "DependsOn": [ + "testServiceQueueProcessingTaskDefTaskRoleDefaultPolicyA2314C2C", + "testServiceQueueProcessingTaskDefTaskRoleBB1E3493" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Environmental variables are okay", + "id": "AwsSolutions-ECS2" + } + ] + } + } + }, + "testRawB02F8A9B": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "BucketKeyEnabled": true, + "ServerSideEncryptionByDefault": { + "KMSMasterKeyID": { + "Fn::GetAtt": [ + "testLogBucketKey32CC4D1D", + "Arn" + ] + }, + "SSEAlgorithm": "aws:kms" + } + } + ] + }, + "LifecycleConfiguration": { + "Rules": [ + { + "AbortIncompleteMultipartUpload": { + "DaysAfterInitiation": 1 + }, + "Id": "AbortIncompleteMultipartUpload", + "Status": "Enabled" + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "testLogBucket7F298F3B" + }, + "LogFilePrefix": "raw-bucket-access-logs" + }, + "ObjectLockConfiguration": { + "ObjectLockEnabled": "Enabled", + "Rule": { + "DefaultRetention": { + "Days": 1, + "Mode": "GOVERNANCE" + } + } + }, + "ObjectLockEnabled": true, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "Tags": [ + { + "Key": "aws-cdk:auto-delete-objects", + "Value": "true" + } + ], + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testRawPolicy5CC638A9": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testRawB02F8A9B" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": { + "AWS": "*" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:PutBucketPolicy", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testRawAutoDeleteObjectsCustomResource75A03DE7": { + "Type": "Custom::S3AutoDeleteObjects", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", + "Arn" + ] + }, + "BucketName": { + "Ref": "testRawB02F8A9B" + } + }, + "DependsOn": [ + "testRawPolicy5CC638A9" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testRawNotificationsE49FC2F5": { + "Type": "Custom::S3BucketNotifications", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "BucketNotificationsHandler050a0587b7544547bf325f094a3db8347ECC3691", + "Arn" + ] + }, + "BucketName": { + "Ref": "testRawB02F8A9B" + }, + "NotificationConfiguration": { + "TopicConfigurations": [ + { + "Events": [ + "s3:ObjectCreated:*" + ], + "TopicArn": { + "Ref": "testTopic20AA7407" + } + } + ] + }, + "Managed": true, + "SkipDestinationValidation": false + }, + "DependsOn": [ + "testRawPolicy5CC638A9", + "testTopicPolicy6FF7D7A8", + "testTopic20AA7407" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "Replication for this use case is uneccessary.", + "id": "HIPAA.Security-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R4-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "NIST.800.53.R5-S3BucketReplicationEnabled" + }, + { + "reason": "Replication for this use case is uneccessary.", + "id": "PCI.DSS.321-S3BucketReplicationEnabled" + } + ] + } + } + }, + "testTopicKey6AD3C1A9": { + "Type": "AWS::KMS::Key", + "Properties": { + "EnableKeyRotation": true, + "KeyPolicy": { + "Statement": [ + { + "Action": "kms:*", + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::", + { + "Ref": "AWS::AccountId" + }, + ":root" + ] + ] + } + }, + "Resource": "*" + }, + { + "Action": [ + "kms:Decrypt", + "kms:GenerateDataKey*" + ], + "Effect": "Allow", + "Principal": { + "Service": "s3.amazonaws.com" + }, + "Resource": "*" + } + ], + "Version": "2012-10-17" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testTopic20AA7407": { + "Type": "AWS::SNS::Topic", + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ + "testTopicKey6AD3C1A9", + "Arn" + ] + } + } + }, + "testTopicPolicy6FF7D7A8": { + "Type": "AWS::SNS::TopicPolicy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Effect": "Allow", + "Principal": { + "Service": "s3.amazonaws.com" + }, + "Resource": { + "Ref": "testTopic20AA7407" + }, + "Sid": "0" + }, + { + "Action": "sns:Publish", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": { + "Ref": "testTopic20AA7407" + }, + "Sid": "AllowPublishThroughSSLOnly" + }, + { + "Action": "sns:Publish", + "Condition": { + "ArnLike": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "testRawB02F8A9B", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "s3.amazonaws.com" + }, + "Resource": { + "Ref": "testTopic20AA7407" + }, + "Sid": "2" + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "testTopic20AA7407" + } + ] + } + }, + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ] + } + }, + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" + }, + "Timeout": 900, + "MemorySize": 128, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + }, + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, + "Description": { + "Fn::Join": [ + "", + [ + "Lambda function for auto-deleting objects in ", + { + "Ref": "testLogBucket7F298F3B" + }, + " S3 bucket." + ] + ] + } + }, + "DependsOn": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" + ] + }, + "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "AWSLambdaBasicExecutionRole is used by `addEventNotification`", + "id": "AwsSolutions-IAM4", + "applies_to": [ + "Policy::arn::iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + }, + { + "reason": "Suppress all AwsSolutions-IAM5 findings for this stack", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*" + ] + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + } + ] + } + } + }, + "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:PutBucketNotification", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36", + "Roles": [ + { + "Ref": "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC" + } + ] + }, + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "AWSLambdaBasicExecutionRole is used by `addEventNotification`", + "id": "AwsSolutions-IAM4", + "applies_to": [ + "Policy::arn::iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + }, + { + "reason": "Suppress all AwsSolutions-IAM5 findings for this stack", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*" + ] + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + } + ] + } + } + }, + "BucketNotificationsHandler050a0587b7544547bf325f094a3db8347ECC3691": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Description": "AWS CloudFormation handler for \"Custom::S3BucketNotifications\" resources (@aws-cdk/aws-s3)", + "Code": { + "ZipFile": "import boto3 # type: ignore\nimport json\nimport logging\nimport urllib.request\n\ns3 = boto3.client(\"s3\")\n\nEVENTBRIDGE_CONFIGURATION = 'EventBridgeConfiguration'\nCONFIGURATION_TYPES = [\"TopicConfigurations\", \"QueueConfigurations\", \"LambdaFunctionConfigurations\"]\n\ndef handler(event: dict, context):\n response_status = \"SUCCESS\"\n error_message = \"\"\n try:\n props = event[\"ResourceProperties\"]\n notification_configuration = props[\"NotificationConfiguration\"]\n managed = props.get('Managed', 'true').lower() == 'true'\n skipDestinationValidation = props.get('SkipDestinationValidation', 'false').lower() == 'true'\n stack_id = event['StackId']\n old = event.get(\"OldResourceProperties\", {}).get(\"NotificationConfiguration\", {})\n if managed:\n config = handle_managed(event[\"RequestType\"], notification_configuration)\n else:\n config = handle_unmanaged(props[\"BucketName\"], stack_id, event[\"RequestType\"], notification_configuration, old)\n s3.put_bucket_notification_configuration(Bucket=props[\"BucketName\"], NotificationConfiguration=config, SkipDestinationValidation=skipDestinationValidation)\n except Exception as e:\n logging.exception(\"Failed to put bucket notification configuration\")\n response_status = \"FAILED\"\n error_message = f\"Error: {str(e)}. \"\n finally:\n submit_response(event, context, response_status, error_message)\n\ndef handle_managed(request_type, notification_configuration):\n if request_type == 'Delete':\n return {}\n return notification_configuration\n\ndef handle_unmanaged(bucket, stack_id, request_type, notification_configuration, old):\n def get_id(n):\n n['Id'] = ''\n strToHash=json.dumps(n, sort_keys=True).replace('\"Name\": \"prefix\"', '\"Name\": \"Prefix\"').replace('\"Name\": \"suffix\"', '\"Name\": \"Suffix\"')\n return f\"{stack_id}-{hash(strToHash)}\"\n def with_id(n):\n n['Id'] = get_id(n)\n return n\n\n external_notifications = {}\n existing_notifications = s3.get_bucket_notification_configuration(Bucket=bucket)\n for t in CONFIGURATION_TYPES:\n if request_type == 'Update':\n old_incoming_ids = [get_id(n) for n in old.get(t, [])]\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not get_id(n) in old_incoming_ids] \n elif request_type == 'Delete':\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not n['Id'].startswith(f\"{stack_id}-\")]\n elif request_type == 'Create':\n external_notifications[t] = [n for n in existing_notifications.get(t, [])]\n if EVENTBRIDGE_CONFIGURATION in existing_notifications:\n external_notifications[EVENTBRIDGE_CONFIGURATION] = existing_notifications[EVENTBRIDGE_CONFIGURATION]\n\n if request_type == 'Delete':\n return external_notifications\n\n notifications = {}\n for t in CONFIGURATION_TYPES:\n external = external_notifications.get(t, [])\n incoming = [with_id(n) for n in notification_configuration.get(t, [])]\n notifications[t] = external + incoming\n\n if EVENTBRIDGE_CONFIGURATION in notification_configuration:\n notifications[EVENTBRIDGE_CONFIGURATION] = notification_configuration[EVENTBRIDGE_CONFIGURATION]\n elif EVENTBRIDGE_CONFIGURATION in external_notifications:\n notifications[EVENTBRIDGE_CONFIGURATION] = external_notifications[EVENTBRIDGE_CONFIGURATION]\n\n return notifications\n\ndef submit_response(event: dict, context, response_status: str, error_message: str):\n response_body = json.dumps(\n {\n \"Status\": response_status,\n \"Reason\": f\"{error_message}See the details in CloudWatch Log Stream: {context.log_stream_name}\",\n \"PhysicalResourceId\": event.get(\"PhysicalResourceId\") or event[\"LogicalResourceId\"],\n \"StackId\": event[\"StackId\"],\n \"RequestId\": event[\"RequestId\"],\n \"LogicalResourceId\": event[\"LogicalResourceId\"],\n \"NoEcho\": False,\n }\n ).encode(\"utf-8\")\n headers = {\"content-type\": \"\", \"content-length\": str(len(response_body))}\n try:\n req = urllib.request.Request(url=event[\"ResponseURL\"], headers=headers, data=response_body, method=\"PUT\")\n with urllib.request.urlopen(req) as response:\n print(response.read().decode(\"utf-8\"))\n print(\"Status code: \" + response.reason)\n except Exception as e:\n print(\"send(..) failed executing request.urlopen(..): \" + str(e))" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC", + "Arn" + ] + }, + "Runtime": "python3.11", + "Timeout": 300 + }, + "DependsOn": [ + "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36", + "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC" + ], + "Metadata": { + "cdk_nag": { + "rules_to_suppress": [ + { + "reason": "AWSLambdaBasicExecutionRole is used by `addEventNotification`", + "id": "AwsSolutions-IAM4", + "applies_to": [ + "Policy::arn::iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + }, + { + "reason": "Suppress all AwsSolutions-IAM5 findings for this stack", + "id": "AwsSolutions-IAM5", + "applies_to": [ + "Resource::*" + ] + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "HIPAA.Security-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "NIST.800.53.R4-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "NIST.800.53.R5-IAMNoInlinePolicy" + }, + { + "reason": "Inline policies are part of the BucketHandlerNotification", + "id": "PCI.DSS.321-IAMNoInlinePolicy" + } + ] + } + } + } + }, + "Outputs": { + "testServiceSQSQueue2827F52D": { + "Value": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "QueueName" + ] + } + }, + "testServiceSQSQueueArnCF38F668": { + "Value": { + "Fn::GetAtt": [ + "testQueueA1A031F3", + "Arn" + ] + } + } + }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json new file mode 100644 index 00000000..9db400c5 --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json @@ -0,0 +1,19 @@ +{ + "version": "36.3.0", + "testCases": { + "ServiceTest/DefaultTest": { + "stacks": [ + "aws-llama-index-data-loader-integ-test" + ], + "cdkCommandOptions": { + "destroy": { + "args": { + "force": true + } + } + }, + "assertionStack": "ServiceTest/DefaultTest/DeployAssert", + "assertionStackName": "ServiceTestDefaultTestDeployAssertE49B1ECE" + } + } +} \ No newline at end of file diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts new file mode 100644 index 00000000..dd19b82e --- /dev/null +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.ts @@ -0,0 +1,35 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ +import * as integ from '@aws-cdk/integ-tests-alpha'; +import * as cdk from 'aws-cdk-lib'; +import { + LlamaIndexDataLoader, +} from '../../../../../src/patterns/gen-ai/aws-llama-index-data-loader'; + +const app = new cdk.App(); +const stack = new cdk.Stack(app, 'aws-llama-index-data-loader-integ-test'); +new LlamaIndexDataLoader(stack, 'test', {}); + +// const integ_case = +new integ.IntegTest(app, 'ServiceTest', { + testCases: [stack], + cdkCommandOptions: { + destroy: { + args: { + force: true, + }, + }, + }, +}); + +app.synth(); From 270965b5accba2b07509cab3dd213ef6bd4a509a Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 14:25:07 -0700 Subject: [PATCH 23/33] fix: add copyright header Signed-off-by: Scott Schreckengaust --- .../docker/sqs_consumer.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py index bcc91bd7..7ee9c47c 100644 --- a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py @@ -1,4 +1,16 @@ #!/bin/env python3 -x -u +# +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance +# with the License. A copy of the License is located at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions +# and limitations under the License. +# from base64 import b64encode from hashlib import sha256 From 97a94356b0cd6484195e73760c92c740b30c57c9 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 14:54:58 -0700 Subject: [PATCH 24/33] chore: update README Signed-off-by: Scott Schreckengaust --- .../aws-llama-index-data-loader/README.md | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md index eace577a..d496361d 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md @@ -62,7 +62,7 @@ data_loader = LlamaIndexDataLoader(self, 'LlamaIndexDataLoader', ) ## Initializer -``` +```typescript new LlamaIndexDataLoader(scope: Construct, id: string, props: LlamaIndexDataLoaderProps) ``` @@ -74,18 +74,20 @@ Parameters ## Pattern Construct Props - | **Name** | **Type** | **Required** | **Description** | | :--------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| existingDashboard | [aws_cloudwatch.Dashboard](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Dashboard.html) | ![Optional](https://img.shields.io/badge/optional-4169E1) | Existing dashboard to be used by the construct. **Mutually exclusive** with ```dashboardName``` - only one should be specified. | -| dashboardName | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | A name for the dashboard which will be created. If not provided, the construct will create a new dashboard named 'AossMetricsDashboard'. **Mutually exclusive** with ```existingDashboard``` - only one should be specified. | +| dockerImageAssetDirectory | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | A path to a directory to build a [DockerImageAsset](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr_assets.DockerImageAsset.html). | +| memoryLimitMiB | number | ![Optional](https://img.shields.io/badge/optional-4169E1) | The memory configuration for the container, should be a valid `Memory` defined [AWS::ECS::TaskDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory) | +| containerLoggingLevel | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | The [python logging level](https://docs.python.org/3/library/logging.html#levels) for the ECS tasks | +| outputBucket | [Bucket](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html) | ![Optional](https://img.shields.io/badge/optional-4169E1) | The output bucket. _If not passed in one will be created automatically_ | +| vpc | [IVpc](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html) | ![Optional](https://img.shields.io/badge/optional-4169E1) | The VPC to use. _If not passed in, the [QueueProcessingFargateService](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs_patterns.QueueProcessingFargateService.html) automatically created one will be used_ | ## Pattern Properties | **Name** | **Type** | **Description** | | :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| dashboard | [aws_cloudwatch.Dashboard](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Dashboard.html) | The CloudWatch Dashboard used by the construct (whether created by the construct or provided by the client) | - +| outputBucket | [Bucket](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html) | The S3 Bucket for the output. | +| queueProcessingFargateService | [QueueProcessingFargateService](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs_patterns.QueueProcessingFargateService.html) | The ECS Fargate and components assocated with the ECS pattern. ## Methods N/A @@ -94,9 +96,17 @@ N/A Out-of-the-box implementation of the construct without any override will set the following defaults: -### Memory +### DockerImageAssetDirectory + +This repositories source [default path](https://github.com/awslabs/generative-ai-cdk-constructs/tree/main/resources/gen-ai/aws-llama-index-data-loader/docker) -TBD +### MemoryLimitMiB + +2048 + +### ContainerLoggingLevel + +'WARNING' ## Architecture @@ -114,8 +124,7 @@ When you build systems on AWS infrastructure, security responsibilities are shar Optionnaly, you can provide existing resources to the constructs (marked optional in the construct pattern props). If you chose to do so, please refer to the official documentation on best practices to secure each service: -- TBD - +- Amazon S3 ## Supported AWS Regions From fa69de0ae6770ed9b301a5854f0cc129d3943cbf Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 14:59:38 -0700 Subject: [PATCH 25/33] fix: markdown missing pipe Signed-off-by: Scott Schreckengaust --- src/patterns/gen-ai/aws-llama-index-data-loader/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md index d496361d..c3f39fac 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md @@ -87,7 +87,8 @@ Parameters | **Name** | **Type** | **Description** | | :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | outputBucket | [Bucket](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html) | The S3 Bucket for the output. | -| queueProcessingFargateService | [QueueProcessingFargateService](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs_patterns.QueueProcessingFargateService.html) | The ECS Fargate and components assocated with the ECS pattern. +| queueProcessingFargateService | [QueueProcessingFargateService](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs_patterns.QueueProcessingFargateService.html) | The ECS Fargate and components assocated with the ECS pattern. | + ## Methods N/A From ecea37df0277982d1c9f9faa6848d0048a068eb8 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 15:17:18 -0700 Subject: [PATCH 26/33] fix: add description and services used Signed-off-by: Scott Schreckengaust --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 667d36c0..ab08f240 100644 --- a/README.md +++ b/README.md @@ -139,8 +139,8 @@ The following constructs are available in the library: | [Content Generation](./src/patterns/gen-ai/aws-contentgen-appsync-lambda/README.md) | Generate images from text using Amazon titan-image-generator-v1 or stability.stable-diffusion-xl-v1 model. | AWS Lambda, Amazon Bedrock, AWS AppSync | | [Web crawler](./src/patterns/gen-ai/aws-web-crawler/README.md) | Crawl websites and RSS feeds on a schedule and store changeset data in an Amazon Simple Storage Service bucket. | AWS Lambda, AWS Batch, AWS Fargate, Amazon DynamoDB | | [Amazon Bedrock Monitoring (Amazon CloudWatch Dashboard)](./src/patterns/gen-ai/aws-bedrock-cw-dashboard/README.md) | Amazon CloudWatch dashboard to monitor model usage from Amazon Bedrock. | Amazon CloudWatch | -| [TXT to SQL](./src/patterns/gen-ai/aws-bedrock-cw-dashboard/README.md) | Amazon CloudWatch dashboard to monitor model usage from Amazon Bedrock. | Amazon CloudWatch | -| [LlamaIndex Data Loading](./src/patterns/gen-ai/aws-bedrock-cw-dashboard/README.md) | Amazon CloudWatch dashboard to monitor model usage from Amazon Bedrock. | Amazon CloudWatch | +| [TXT to SQL](./src/patterns/gen-ai/aws-text-to-sql/README.md) | Leverages generative AI capabilities to facilitate natural language-based SQL query generation. | Amazon Event Bridge, Amazon Bedrock, AWS Lambda, Amazon SQS, AWS Secrets, and database of choice | +| [LlamaIndex Data Loading](./src/patterns/gen-ai/aws-llama-index-data-loader/README.md) | Use LlamaIndex to load data in preparation for generative AI workloads | Amazon ECS Fargate, Amazon SQS, and AWS Systems Manager Parameters | ### L2 Constructs From 7f5c093611107fba6559c20e5f79ade7871732b8 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Fri, 11 Oct 2024 15:38:39 -0700 Subject: [PATCH 27/33] fix(test): update snapshot files --- .../aws-llama-index-data-loader-integ-test.assets.json | 10 +++++----- ...ws-llama-index-data-loader-integ-test.template.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json index 80c78512..f9999140 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json @@ -14,7 +14,7 @@ } } }, - "d38f4083561b68e337d8542a65fb59e3c0b2899feb716564a2b0f88993303f77": { + "4894bfbee43f63858f5974a2ae76e67f7ea72d045697adf8249d081086c8ecaa": { "source": { "path": "aws-llama-index-data-loader-integ-test.template.json", "packaging": "file" @@ -22,22 +22,22 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "d38f4083561b68e337d8542a65fb59e3c0b2899feb716564a2b0f88993303f77.json", + "objectKey": "4894bfbee43f63858f5974a2ae76e67f7ea72d045697adf8249d081086c8ecaa.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } } }, "dockerImages": { - "6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c": { + "a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596": { "source": { - "directory": "asset.6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c", + "directory": "asset.a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596", "platform": "linux/amd64" }, "destinations": { "current_account-current_region": { "repositoryName": "cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}", - "imageTag": "6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c", + "imageTag": "a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-image-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json index d942612b..b668f912 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json @@ -2145,7 +2145,7 @@ "Timeout": 30 }, "Image": { - "Fn::Sub": "${AWS::AccountId}.dkr.ecr.${AWS::Region}.${AWS::URLSuffix}/cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}:6c999bf70c6db335ddecefc60cdcb011cc7f9337f942ee90248d86761a1dd64c" + "Fn::Sub": "${AWS::AccountId}.dkr.ecr.${AWS::Region}.${AWS::URLSuffix}/cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}:a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596" }, "LogConfiguration": { "LogDriver": "awslogs", From 618ca2eb7409fac87edb76d8603c53230dd79c02 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Mon, 14 Oct 2024 10:31:23 -0700 Subject: [PATCH 28/33] fix: document cluster and vpc plus test snapshots Signed-off-by: Scott Schreckengaust --- .../gen-ai/aws-llama-index-data-loader/README.md | 2 +- .../gen-ai/aws-llama-index-data-loader/index.ts | 10 +++++++--- .../aws-llama-index-data-loader-integ-test.assets.json | 4 ++-- ...ws-llama-index-data-loader-integ-test.template.json | 4 ++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md index c3f39fac..392caea9 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/README.md +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/README.md @@ -76,7 +76,7 @@ Parameters | **Name** | **Type** | **Required** | **Description** | | :--------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| dockerImageAssetDirectory | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | A path to a directory to build a [DockerImageAsset](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr_assets.DockerImageAsset.html). | +| dockerImageAssetDirectory | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | A path to a directory to build a [DockerImageAsset](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr_assets.DockerImageAsset.html). _**NOTE**: Currently the platform is fixed to [`Platform.LINUX_AMD64`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr_assets.Platform.html) with the runtime platform to match with `CpuArchitecture.X86_64` and `OperatingSystemFamily.LINUX` for the running Fargate ECS_ | | memoryLimitMiB | number | ![Optional](https://img.shields.io/badge/optional-4169E1) | The memory configuration for the container, should be a valid `Memory` defined [AWS::ECS::TaskDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory) | | containerLoggingLevel | string | ![Optional](https://img.shields.io/badge/optional-4169E1) | The [python logging level](https://docs.python.org/3/library/logging.html#levels) for the ECS tasks | | outputBucket | [Bucket](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html) | ![Optional](https://img.shields.io/badge/optional-4169E1) | The output bucket. _If not passed in one will be created automatically_ | diff --git a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts index 582ca1b8..3421c559 100644 --- a/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts +++ b/src/patterns/gen-ai/aws-llama-index-data-loader/index.ts @@ -14,7 +14,7 @@ import { join } from 'node:path'; import { Duration, RemovalPolicy, Stack } from 'aws-cdk-lib'; import { FlowLogDestination, IVpc } from 'aws-cdk-lib/aws-ec2'; import { DockerImageAsset, Platform } from 'aws-cdk-lib/aws-ecr-assets'; -import { Cluster, ContainerImage } from 'aws-cdk-lib/aws-ecs'; +import { Cluster, ContainerImage, CpuArchitecture, OperatingSystemFamily } from 'aws-cdk-lib/aws-ecs'; import { QueueProcessingFargateService } from 'aws-cdk-lib/aws-ecs-patterns'; import { Effect, PolicyStatement, ServicePrincipal } from 'aws-cdk-lib/aws-iam'; import { Key } from 'aws-cdk-lib/aws-kms'; @@ -175,11 +175,15 @@ export class LlamaIndexDataLoader extends BaseClass { }, }); const queueProcessingFargateService = new QueueProcessingFargateService(this, 'Service', { - cluster: new Cluster(this, 'Cluster', { + cluster: props.vpc === undefined ? new Cluster(this, 'Cluster', { containerInsights: true, - }), + }) : undefined, vpc: props.vpc, memoryLimitMiB: this.memoryLimitMiB, + runtimePlatform: { + cpuArchitecture: CpuArchitecture.X86_64, + operatingSystemFamily: OperatingSystemFamily.LINUX, + }, queue: queue, image: ContainerImage.fromDockerImageAsset(asset), healthCheck: { diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json index f9999140..f9c8334d 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json @@ -14,7 +14,7 @@ } } }, - "4894bfbee43f63858f5974a2ae76e67f7ea72d045697adf8249d081086c8ecaa": { + "af11868e29e6f9a4330b2c323a00eb24b7858f13cbdc477ab9de72d2299d2765": { "source": { "path": "aws-llama-index-data-loader-integ-test.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "4894bfbee43f63858f5974a2ae76e67f7ea72d045697adf8249d081086c8ecaa.json", + "objectKey": "af11868e29e6f9a4330b2c323a00eb24b7858f13cbdc477ab9de72d2299d2765.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json index b668f912..a3f92e29 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json @@ -2175,6 +2175,10 @@ "RequiresCompatibilities": [ "FARGATE" ], + "RuntimePlatform": { + "CpuArchitecture": "X86_64", + "OperatingSystemFamily": "LINUX" + }, "TaskRoleArn": { "Fn::GetAtt": [ "testServiceQueueProcessingTaskDefTaskRoleBB1E3493", From a3f0e9c99437a40d2000fb6286dd424296e15dba Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 15 Oct 2024 08:46:28 -0700 Subject: [PATCH 29/33] fix: add enumeration to base class Signed-off-by: Scott Schreckengaust --- src/common/base-class/base-class.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/base-class/base-class.ts b/src/common/base-class/base-class.ts index c8d2e9ce..28775dae 100644 --- a/src/common/base-class/base-class.ts +++ b/src/common/base-class/base-class.ts @@ -62,6 +62,7 @@ export class BaseClass extends Construct { [ConstructName.HUGGINGFACESAGEMAKERENDPOINT]: 0, [ConstructName.JUMPSTARTSAGEMAKERENDPOINT]: 0, [ConstructName.AWSCONTENTGENAPPSYNCLAMBDA]: 0, + [ConstructName.AWSLLAMAINDEXDATALOADER]: 0, }; From 228a950612b403c6549df87108b23c78a76eeac9 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 15 Oct 2024 08:49:44 -0700 Subject: [PATCH 30/33] fix: remove comments Signed-off-by: Scott Schreckengaust --- .../docker/sqs_consumer.py | 34 +------------------ 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py index 7ee9c47c..aa1ae461 100644 --- a/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/sqs_consumer.py @@ -59,18 +59,15 @@ raise AssertionError('QUEUE_NAME environment variable is not set') else: LOGGER.debug(f'"QUEUE_NAME" is {QUEUE_NAME}') - # print(f'DEBUG: "QUEUE_NAME" is {QUEUE_NAME}', flush=True) if BUCKET_NAME is None: raise AssertionError('BUCKET_NAME environment variable is not set') else: LOGGER.debug(f'"BUCKET_NAME" is {BUCKET_NAME}') - # print(f'DEBUG: "BUCKET_NAME" is {BUCKET_NAME}', flush=True) SQS_QUEUE = SQS.get_queue_by_name( QueueName=QUEUE_NAME, ) LOGGER.debug(f'Queue attributes {SQS_QUEUE.attributes}') -# print(f'DEBUG: {SQS_QUEUE.attributes}', flush=True) class SignalHandler: def __init__(self, sig): @@ -79,7 +76,6 @@ def __init__(self, sig): def _signal_handler(self, signal, frame): LOGGER.warning(f'handling signal {signal}, exiting gracefully') - # print(f'handling signal {signal}, exiting gracefully', flush=True) self.received_signal = True def save_document(documents, serialize=True) -> None: @@ -90,10 +86,6 @@ def save_document(documents, serialize=True) -> None: LOGGER.debug(f'document text: {document.text}') LOGGER.debug(f'document metadata: {document.metadata}') LOGGER.debug(f'document extra info: {document.extra_info}') - # print(f'INFO(save_document): document id: {document.doc_id}', flush=True) - # print(f'DEBUG(save_document): document text: {document.text}', flush=True) - # print(f'DEBUG(save_document): document metadata: {document.metadata}', flush=True) - # print(f'DEBUG(save_document): document extra info: {document.extra_info}', flush=True) data = document.text.encode() response = S3.put_object( Body=data, @@ -104,12 +96,10 @@ def save_document(documents, serialize=True) -> None: ) LOGGER.debug(f'put_object {response}') save_result = True - # print(response, flush=True) if serialize: frozen = encode(document) body = frozen.encode() LOGGER.debug(f'frozen {frozen}') - # print(f'DEBUG frozen {frozen}', flush=True) frozen_response = S3.put_object( Body=body, Bucket=BUCKET_NAME, @@ -123,7 +113,6 @@ def save_document(documents, serialize=True) -> None: def load_document(filename) -> bool: load_result = False LOGGER.debug(f'loading filename {filename}') - # print(f'DEBUG(load_document): loading {filename}', flush=True) reader = SimpleDirectoryReader( fs=S3FileSystem(), input_files=[filename], @@ -149,18 +138,10 @@ def log_message(sqs_message) -> None: LOGGER.debug(f'body: {sqs_message.body}') LOGGER.debug(f'md5 of body: {sqs_message.md5_of_body}') LOGGER.debug(f'md5 of message attributes: {sqs_message.md5_of_message_attributes}') - # print(f'INFO(log_message): message id: {sqs_message.message_id}', flush=True) - # print(f'DEBUG(log_message): message attributes: {sqs_message.message_attributes}', flush=True) - # print(f'DEBUG(log_message): message available subresources: {sqs_message.get_available_subresources()}', flush=True) - # print(f'DEBUG(log_message): attributes: {sqs_message.attributes}', flush=True) - # print(f'DEBUG(log_message): body: {sqs_message.body}', flush=True) - # print(f'DEBUG(log_message): md5 of body: {sqs_message.md5_of_body}', flush=True) - # print(f'DEBUG(log_message): md5 of message attributes: {sqs_message.md5_of_message_attributes}', flush=True) def process_message(sqs_message) -> bool: process_result = False LOGGER.info(f'process message id: {sqs_message.message_id}') - # print(f'INFO(process_message): message id: {sqs_message.message_id}', flush=True) json_message = loads(sqs_message.body) if 'Type' in json_message and json_message['Type'] == 'Notification': if 'Message' in json_message and json_message['Message'] != '' and 'Subject' in json_message and json_message['Subject'] == 'Amazon S3 Notification': @@ -169,20 +150,15 @@ def process_message(sqs_message) -> bool: for record in message_content['Records']: if 'eventName' in record and record['eventName'].startswith('ObjectCreated') and 's3' in record and 'object' in record['s3'] and 'key' in record['s3']['object'] and 'bucket' in record['s3'] and 'name' in record['s3']['bucket']: LOGGER.info(f's3 object key: {record["s3"]["object"]["key"]} in {record["s3"]["bucket"]["name"]}') - # print(f'INFO(process_message): s3 object key: {record["s3"]["object"]["key"]} in {record["s3"]["bucket"]["name"]}', flush=True) process_result = load_document(join(record['s3']['bucket']['name'], record['s3']['object']['key'])) else: LOGGER.warning(f'skipped: {record}') - # print(f'WARNING(process_message): skipped: {record}', flush=True) else: LOGGER.warning(f'missing records: {message_content}') - # print(f'WARNING(process_message): missing records: {message_content}', flush=True) else: LOGGER.warning(f'unknown message: {json_message}') - # print(f'WARNING(process_message): unknown message: {json_message}', flush=True) else: LOGGER.warning(f'unknown message type: {json_message}') - # print(f'WARNING(process_message): unknown message type: {json_message}', flush=True) return process_result # The circuit breaker doesn't kill the process it only skips checking the queue... @@ -196,7 +172,6 @@ def check_circuit_breaker() -> bool: ) circuit_breaker = response_get_parameter['Parameter']['Value'] LOGGER.info(f'Circuit breaker="{circuit_breaker}" for SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" to process the SQS queue named "{QUEUE_NAME}"') - # print(f'Circuit breaker="{circuit_breaker}" for SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" to process the SQS queue named "{QUEUE_NAME}"', flush=True) if response_get_parameter['Parameter']['Value'] == 'True': tripped = True except ClientError as exc: @@ -209,8 +184,6 @@ def check_circuit_breaker() -> bool: def main(): LOGGER.critical('starting...') LOGGER.warning(f'A circuit breaker SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" is being checked TTL of {CIRCUIT_BREAKER_CACHE_TTL} seconds, create it to skip long polling the SQS Queue "{QUEUE_NAME}"') - # print('starting...', flush=True) - # print(f'A circuit breaker SSM parameter "{CIRCUIT_BREAKER_SSM_PARAMETER_NAME}" is being checked TTL of {CIRCUIT_BREAKER_CACHE_TTL} seconds, create it to skip long polling the SQS Queue "{QUEUE_NAME}"') sigterm_handler = SignalHandler(SIGTERM) sigint_handler = SignalHandler(SIGINT) looper = 0 @@ -224,11 +197,9 @@ def main(): looper += 1 if check_circuit_breaker(): LOGGER.info('💥' * looper) - # print('💥' * looper, flush=True) sleep(WAIT_TIME_SECONDS) else: LOGGER.info('🏃' * looper) - # print('🏃' * looper, flush=True) messages = SQS_QUEUE.receive_messages( MaxNumberOfMessages=10, # 1-10 messages WaitTimeSeconds=WAIT_TIME_SECONDS, # 0-20 seconds @@ -239,8 +210,8 @@ def main(): for message in messages: log_message(message) for message in messages: LOGGER.info(f'main message id: {message.message_id}') - # print(f'INFO(main): message id: {message.message_id}', flush=True) try: + ## Consider setting the visibility high to avoid running multiple times. # message.change_visibility( # VisibilityTimeout=MAX_SQS_VISIBILITY_TIMEOUT, # ) @@ -252,13 +223,10 @@ def main(): # VisibilityTimeout=int(SQS_QUEUE.attributes['VisibilityTimeout']), # ) LOGGER.error(f'exception while processing message: {repr(e)}') - # print(f'exception while processing message: {repr(e)}', flush=True) continue LOGGER.critical('...ending') - # print('...ending', flush=True) if __name__ == '__main__': main() else: LOGGER.warning(f'{__name__} is not accounted for') - # print(f'{__name__} is not accounted for', flush=True) \ No newline at end of file From 34d281e3626cb5ada1665a2ba37b1a750b8e3085 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 15 Oct 2024 08:50:53 -0700 Subject: [PATCH 31/33] fix: add headers Signed-off-by: Scott Schreckengaust --- .../aws-llama-index-data-loader/docker/Dockerfile | 12 ++++++++++++ .../aws-llama-index-data-loader/docker/runner.sh | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile b/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile index fa18a1f6..22289ef0 100644 --- a/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/Dockerfile @@ -1,3 +1,15 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance +# with the License. A copy of the License is located at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions +# and limitations under the License. +# + ARG PYTHON_TAG="latest" # RedundantTargetPlatform check violation # https://docs.docker.com/reference/build-checks/redundant-target-platform/ diff --git a/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh b/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh index 3872b9ac..04cfcc2b 100755 --- a/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh +++ b/resources/gen-ai/aws-llama-index-data-loader/docker/runner.sh @@ -1,4 +1,16 @@ #!/bin/sh +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance +# with the License. A copy of the License is located at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions +# and limitations under the License. +# + set -e echo "${$}" > pid; From f4970e0760da862c08dd3ef21329509e7e697403 Mon Sep 17 00:00:00 2001 From: Scott Schreckengaust Date: Tue, 15 Oct 2024 08:54:46 -0700 Subject: [PATCH 32/33] fix: update snapshot Signed-off-by: Scott Schreckengaust --- .../aws-llama-index-data-loader-integ-test.assets.json | 10 +++++----- ...ws-llama-index-data-loader-integ-test.template.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json index f9c8334d..8dde1f7e 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json @@ -14,7 +14,7 @@ } } }, - "af11868e29e6f9a4330b2c323a00eb24b7858f13cbdc477ab9de72d2299d2765": { + "79337835d1f5ddbb3597a3da6c9e54d5baf38f2fa48490699e7725f5d8a4462f": { "source": { "path": "aws-llama-index-data-loader-integ-test.template.json", "packaging": "file" @@ -22,22 +22,22 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "af11868e29e6f9a4330b2c323a00eb24b7858f13cbdc477ab9de72d2299d2765.json", + "objectKey": "79337835d1f5ddbb3597a3da6c9e54d5baf38f2fa48490699e7725f5d8a4462f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } } }, "dockerImages": { - "a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596": { + "dbdfbc71da28e53c4e106883b62a14fd19bbe4d7e6dfa907f9454b8f3e2360f1": { "source": { - "directory": "asset.a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596", + "directory": "asset.dbdfbc71da28e53c4e106883b62a14fd19bbe4d7e6dfa907f9454b8f3e2360f1", "platform": "linux/amd64" }, "destinations": { "current_account-current_region": { "repositoryName": "cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}", - "imageTag": "a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596", + "imageTag": "dbdfbc71da28e53c4e106883b62a14fd19bbe4d7e6dfa907f9454b8f3e2360f1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-image-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json index a3f92e29..ede2bff6 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json @@ -2145,7 +2145,7 @@ "Timeout": 30 }, "Image": { - "Fn::Sub": "${AWS::AccountId}.dkr.ecr.${AWS::Region}.${AWS::URLSuffix}/cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}:a999c8fbb93b8afc8e7e1979625c00f051bb46032ebc1f0077bef8c9dccd2596" + "Fn::Sub": "${AWS::AccountId}.dkr.ecr.${AWS::Region}.${AWS::URLSuffix}/cdk-hnb659fds-container-assets-${AWS::AccountId}-${AWS::Region}:dbdfbc71da28e53c4e106883b62a14fd19bbe4d7e6dfa907f9454b8f3e2360f1" }, "LogConfiguration": { "LogDriver": "awslogs", From 79071aa0082157749708c4ce35a0470dc9d98618 Mon Sep 17 00:00:00 2001 From: krokoko Date: Tue, 15 Oct 2024 11:34:03 -0500 Subject: [PATCH 33/33] chore(build): fix update from main --- .../ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json | 2 +- .../aws-llama-index-data-loader-integ-test.assets.json | 6 +++--- .../aws-llama-index-data-loader-integ-test.template.json | 2 +- .../aws-llama-index-data-loader.integ.snapshot/integ.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json index 7cac6c6a..4adbb7de 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/ServiceTestDefaultTestDeployAssertE49B1ECE.assets.json @@ -1,5 +1,5 @@ { - "version": "36.3.0", + "version": "38.0.1", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "source": { diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json index 8dde1f7e..6f82b4a2 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.assets.json @@ -1,5 +1,5 @@ { - "version": "36.3.0", + "version": "38.0.1", "files": { "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { @@ -14,7 +14,7 @@ } } }, - "79337835d1f5ddbb3597a3da6c9e54d5baf38f2fa48490699e7725f5d8a4462f": { + "51c815aa4873ecd577f19e12f0731bf14f73527e5a03b65d82151ef0488c5b74": { "source": { "path": "aws-llama-index-data-loader-integ-test.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "79337835d1f5ddbb3597a3da6c9e54d5baf38f2fa48490699e7725f5d8a4462f.json", + "objectKey": "51c815aa4873ecd577f19e12f0731bf14f73527e5a03b65d82151ef0488c5b74.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json index ede2bff6..98384213 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/aws-llama-index-data-loader-integ-test.template.json @@ -3453,7 +3453,7 @@ "Properties": { "Description": "AWS CloudFormation handler for \"Custom::S3BucketNotifications\" resources (@aws-cdk/aws-s3)", "Code": { - "ZipFile": "import boto3 # type: ignore\nimport json\nimport logging\nimport urllib.request\n\ns3 = boto3.client(\"s3\")\n\nEVENTBRIDGE_CONFIGURATION = 'EventBridgeConfiguration'\nCONFIGURATION_TYPES = [\"TopicConfigurations\", \"QueueConfigurations\", \"LambdaFunctionConfigurations\"]\n\ndef handler(event: dict, context):\n response_status = \"SUCCESS\"\n error_message = \"\"\n try:\n props = event[\"ResourceProperties\"]\n notification_configuration = props[\"NotificationConfiguration\"]\n managed = props.get('Managed', 'true').lower() == 'true'\n skipDestinationValidation = props.get('SkipDestinationValidation', 'false').lower() == 'true'\n stack_id = event['StackId']\n old = event.get(\"OldResourceProperties\", {}).get(\"NotificationConfiguration\", {})\n if managed:\n config = handle_managed(event[\"RequestType\"], notification_configuration)\n else:\n config = handle_unmanaged(props[\"BucketName\"], stack_id, event[\"RequestType\"], notification_configuration, old)\n s3.put_bucket_notification_configuration(Bucket=props[\"BucketName\"], NotificationConfiguration=config, SkipDestinationValidation=skipDestinationValidation)\n except Exception as e:\n logging.exception(\"Failed to put bucket notification configuration\")\n response_status = \"FAILED\"\n error_message = f\"Error: {str(e)}. \"\n finally:\n submit_response(event, context, response_status, error_message)\n\ndef handle_managed(request_type, notification_configuration):\n if request_type == 'Delete':\n return {}\n return notification_configuration\n\ndef handle_unmanaged(bucket, stack_id, request_type, notification_configuration, old):\n def get_id(n):\n n['Id'] = ''\n strToHash=json.dumps(n, sort_keys=True).replace('\"Name\": \"prefix\"', '\"Name\": \"Prefix\"').replace('\"Name\": \"suffix\"', '\"Name\": \"Suffix\"')\n return f\"{stack_id}-{hash(strToHash)}\"\n def with_id(n):\n n['Id'] = get_id(n)\n return n\n\n external_notifications = {}\n existing_notifications = s3.get_bucket_notification_configuration(Bucket=bucket)\n for t in CONFIGURATION_TYPES:\n if request_type == 'Update':\n old_incoming_ids = [get_id(n) for n in old.get(t, [])]\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not get_id(n) in old_incoming_ids] \n elif request_type == 'Delete':\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not n['Id'].startswith(f\"{stack_id}-\")]\n elif request_type == 'Create':\n external_notifications[t] = [n for n in existing_notifications.get(t, [])]\n if EVENTBRIDGE_CONFIGURATION in existing_notifications:\n external_notifications[EVENTBRIDGE_CONFIGURATION] = existing_notifications[EVENTBRIDGE_CONFIGURATION]\n\n if request_type == 'Delete':\n return external_notifications\n\n notifications = {}\n for t in CONFIGURATION_TYPES:\n external = external_notifications.get(t, [])\n incoming = [with_id(n) for n in notification_configuration.get(t, [])]\n notifications[t] = external + incoming\n\n if EVENTBRIDGE_CONFIGURATION in notification_configuration:\n notifications[EVENTBRIDGE_CONFIGURATION] = notification_configuration[EVENTBRIDGE_CONFIGURATION]\n elif EVENTBRIDGE_CONFIGURATION in external_notifications:\n notifications[EVENTBRIDGE_CONFIGURATION] = external_notifications[EVENTBRIDGE_CONFIGURATION]\n\n return notifications\n\ndef submit_response(event: dict, context, response_status: str, error_message: str):\n response_body = json.dumps(\n {\n \"Status\": response_status,\n \"Reason\": f\"{error_message}See the details in CloudWatch Log Stream: {context.log_stream_name}\",\n \"PhysicalResourceId\": event.get(\"PhysicalResourceId\") or event[\"LogicalResourceId\"],\n \"StackId\": event[\"StackId\"],\n \"RequestId\": event[\"RequestId\"],\n \"LogicalResourceId\": event[\"LogicalResourceId\"],\n \"NoEcho\": False,\n }\n ).encode(\"utf-8\")\n headers = {\"content-type\": \"\", \"content-length\": str(len(response_body))}\n try:\n req = urllib.request.Request(url=event[\"ResponseURL\"], headers=headers, data=response_body, method=\"PUT\")\n with urllib.request.urlopen(req) as response:\n print(response.read().decode(\"utf-8\"))\n print(\"Status code: \" + response.reason)\n except Exception as e:\n print(\"send(..) failed executing request.urlopen(..): \" + str(e))" + "ZipFile": "import boto3 # type: ignore\nimport json\nimport logging\nimport urllib.request\n\ns3 = boto3.client(\"s3\")\n\nEVENTBRIDGE_CONFIGURATION = 'EventBridgeConfiguration'\nCONFIGURATION_TYPES = [\"TopicConfigurations\", \"QueueConfigurations\", \"LambdaFunctionConfigurations\"]\n\ndef handler(event: dict, context):\n response_status = \"SUCCESS\"\n error_message = \"\"\n try:\n props = event[\"ResourceProperties\"]\n notification_configuration = props[\"NotificationConfiguration\"]\n managed = props.get('Managed', 'true').lower() == 'true'\n skipDestinationValidation = props.get('SkipDestinationValidation', 'false').lower() == 'true'\n stack_id = event['StackId']\n old = event.get(\"OldResourceProperties\", {}).get(\"NotificationConfiguration\", {})\n if managed:\n config = handle_managed(event[\"RequestType\"], notification_configuration)\n else:\n config = handle_unmanaged(props[\"BucketName\"], stack_id, event[\"RequestType\"], notification_configuration, old)\n s3.put_bucket_notification_configuration(Bucket=props[\"BucketName\"], NotificationConfiguration=config, SkipDestinationValidation=skipDestinationValidation)\n except Exception as e:\n logging.exception(\"Failed to put bucket notification configuration\")\n response_status = \"FAILED\"\n error_message = f\"Error: {str(e)}. \"\n finally:\n submit_response(event, context, response_status, error_message)\n\ndef handle_managed(request_type, notification_configuration):\n if request_type == 'Delete':\n return {}\n return notification_configuration\n\ndef handle_unmanaged(bucket, stack_id, request_type, notification_configuration, old):\n def get_id(n):\n n['Id'] = ''\n sorted_notifications = sort_filter_rules(n)\n strToHash=json.dumps(sorted_notifications, sort_keys=True).replace('\"Name\": \"prefix\"', '\"Name\": \"Prefix\"').replace('\"Name\": \"suffix\"', '\"Name\": \"Suffix\"')\n return f\"{stack_id}-{hash(strToHash)}\"\n def with_id(n):\n n['Id'] = get_id(n)\n return n\n\n external_notifications = {}\n existing_notifications = s3.get_bucket_notification_configuration(Bucket=bucket)\n for t in CONFIGURATION_TYPES:\n if request_type == 'Update':\n old_incoming_ids = [get_id(n) for n in old.get(t, [])]\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not get_id(n) in old_incoming_ids] \n elif request_type == 'Delete':\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not n['Id'].startswith(f\"{stack_id}-\")]\n elif request_type == 'Create':\n external_notifications[t] = [n for n in existing_notifications.get(t, [])]\n if EVENTBRIDGE_CONFIGURATION in existing_notifications:\n external_notifications[EVENTBRIDGE_CONFIGURATION] = existing_notifications[EVENTBRIDGE_CONFIGURATION]\n\n if request_type == 'Delete':\n return external_notifications\n\n notifications = {}\n for t in CONFIGURATION_TYPES:\n external = external_notifications.get(t, [])\n incoming = [with_id(n) for n in notification_configuration.get(t, [])]\n notifications[t] = external + incoming\n\n if EVENTBRIDGE_CONFIGURATION in notification_configuration:\n notifications[EVENTBRIDGE_CONFIGURATION] = notification_configuration[EVENTBRIDGE_CONFIGURATION]\n elif EVENTBRIDGE_CONFIGURATION in external_notifications:\n notifications[EVENTBRIDGE_CONFIGURATION] = external_notifications[EVENTBRIDGE_CONFIGURATION]\n\n return notifications\n\ndef submit_response(event: dict, context, response_status: str, error_message: str):\n response_body = json.dumps(\n {\n \"Status\": response_status,\n \"Reason\": f\"{error_message}See the details in CloudWatch Log Stream: {context.log_stream_name}\",\n \"PhysicalResourceId\": event.get(\"PhysicalResourceId\") or event[\"LogicalResourceId\"],\n \"StackId\": event[\"StackId\"],\n \"RequestId\": event[\"RequestId\"],\n \"LogicalResourceId\": event[\"LogicalResourceId\"],\n \"NoEcho\": False,\n }\n ).encode(\"utf-8\")\n headers = {\"content-type\": \"\", \"content-length\": str(len(response_body))}\n try:\n req = urllib.request.Request(url=event[\"ResponseURL\"], headers=headers, data=response_body, method=\"PUT\")\n with urllib.request.urlopen(req) as response:\n print(response.read().decode(\"utf-8\"))\n print(\"Status code: \" + response.reason)\n except Exception as e:\n print(\"send(..) failed executing request.urlopen(..): \" + str(e))\n\ndef sort_filter_rules(json_obj):\n if not isinstance(json_obj, dict):\n return json_obj\n for key, value in json_obj.items():\n if isinstance(value, dict):\n json_obj[key] = sort_filter_rules(value)\n elif isinstance(value, list):\n json_obj[key] = [sort_filter_rules(item) for item in value]\n if \"Filter\" in json_obj and \"Key\" in json_obj[\"Filter\"] and \"FilterRules\" in json_obj[\"Filter\"][\"Key\"]:\n filter_rules = json_obj[\"Filter\"][\"Key\"][\"FilterRules\"]\n sorted_filter_rules = sorted(filter_rules, key=lambda x: x[\"Name\"])\n json_obj[\"Filter\"][\"Key\"][\"FilterRules\"] = sorted_filter_rules\n return json_obj" }, "Handler": "index.handler", "Role": { diff --git a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json index 9db400c5..2d280671 100644 --- a/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json +++ b/test/patterns/gen-ai/aws-llama-index-data-loader/integ-tests/aws-llama-index-data-loader.integ.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "36.3.0", + "version": "38.0.1", "testCases": { "ServiceTest/DefaultTest": { "stacks": [

CgK@79Ld7W!Vmq=Q^+Vg58dc(!MNZ-_O8; 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