Skip to content

Commit bc4b6e0

Browse files
authored
Support deploying LISA more than once in a single account
1 parent 95ffcdc commit bc4b6e0

10 files changed

+27
-23
lines changed

example_config.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ authConfig:
66
adminGroup:
77
jwtGroupsProperty:
88
s3BucketModels: hf-models-gaiic
9+
ragRepositories: []
910
########################### OPTIONAL BELOW #######################################
1011
# profile: AWS CLI profile for deployment.
1112
# vpcId: VPC ID for the application. (e.g. vpc-0123456789abcdef)

lib/api-base/authorizer.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export class CustomAuthorizer extends Construct {
7979
const authorizerLambda = new Function(this, 'AuthorizerLambda', {
8080
deadLetterQueueEnabled: true,
8181
deadLetterQueue: new Queue(this, 'AuthorizerLambdaDLQ', {
82-
queueName: 'AuthorizerLambdaDLQ',
82+
queueName: `${cdk.Stack.of(this).stackName}-AuthorizerLambdaDLQ`,
8383
enforceSSL: true,
8484
}),
8585
runtime: getDefaultRuntime(),
@@ -97,7 +97,7 @@ export class CustomAuthorizer extends Construct {
9797
JWT_GROUPS_PROP: config.authConfig!.jwtGroupsProperty,
9898
MANAGEMENT_KEY_NAME: managementKeySecretNameStringParameter.stringValue
9999
},
100-
reservedConcurrentExecutions: 20,
100+
reservedConcurrentExecutions: 5,
101101
role: role,
102102
vpc: vpc.vpc,
103103
securityGroups: securityGroups,

lib/api-base/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export function registerAPIEndpoint (
122122
timeout: funcDef.timeout || Duration.seconds(180),
123123
memorySize: 512,
124124
layers,
125-
reservedConcurrentExecutions: 20,
125+
reservedConcurrentExecutions: 5,
126126
role,
127127
vpc: vpc.vpc,
128128
securityGroups,

lib/configSchema.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ export const RawConfigObject = z.object({
673673
}).describe('Pypi configuration.'),
674674
condaUrl: z.string().default('').describe('Conda URL configuration'),
675675
certificateAuthorityBundle: z.string().default('').describe('Certificate Authority Bundle file'),
676-
ragRepositories: z.array(RagRepositoryConfigSchema).optional().default([]).describe('Rag Repository configuration.'),
676+
ragRepositories: z.array(RagRepositoryConfigSchema).describe('Rag Repository configuration.'),
677677
ragFileProcessingConfig: RagFileProcessingConfigSchema.optional().describe('Rag file processing configuration.'),
678678
ecsModels: z.array(EcsModelConfigSchema).optional().describe('Array of ECS model configurations.'),
679679
apiGatewayConfig: ApiGatewayConfigSchema,

lib/models/docker-image-builder.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,15 @@ export class DockerImageBuilder extends Construct {
8585
this.dockerImageBuilderFn = new Function(this, functionId, {
8686
deadLetterQueueEnabled: true,
8787
deadLetterQueue: new Queue(this, 'docker-image-builderDLQ', {
88-
queueName: 'docker-image-builderDLQ',
88+
queueName: `${stackName}-docker-image-builderDLQ`,
8989
enforceSSL: true,
9090
}),
9191
functionName: functionId,
9292
runtime: getDefaultRuntime(),
9393
handler: 'dockerimagebuilder.handler',
9494
code: Code.fromAsset('./lambda/'),
9595
timeout: Duration.minutes(1),
96-
reservedConcurrentExecutions: 10,
96+
reservedConcurrentExecutions: 5,
9797
memorySize: 1024,
9898
role: ec2BuilderRole,
9999
environment: {

lib/models/state-machine/create-model.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
limitations under the License.
1515
*/
1616

17+
import * as cdk from 'aws-cdk-lib';
1718
import {
1819
Choice,
1920
Condition,
@@ -79,7 +80,7 @@ export class CreateModelStateMachine extends Construct {
7980
lambdaFunction: new Function(this, 'SetModelToCreatingFunc', {
8081
deadLetterQueueEnabled: true,
8182
deadLetterQueue: new Queue(this, 'SetModelToCreatingDLQ', {
82-
queueName: 'SetModelToCreatingDLQ',
83+
queueName: `${cdk.Stack.of(this).stackName}-SetModelToCreatingDLQ`,
8384
enforceSSL: true,
8485
}),
8586
runtime: getDefaultRuntime(),
@@ -104,7 +105,7 @@ export class CreateModelStateMachine extends Construct {
104105
lambdaFunction: new Function(this, 'StartCopyDockerImageFunc', {
105106
deadLetterQueueEnabled: true,
106107
deadLetterQueue: new Queue(this, 'StartCopyDockerImageDLQ', {
107-
queueName: 'StartCopyDockerImageDLQ',
108+
queueName: `${cdk.Stack.of(this).stackName}-StartCopyDockerImageDLQ`,
108109
enforceSSL: true,
109110
}),
110111
runtime: getDefaultRuntime(),
@@ -127,7 +128,7 @@ export class CreateModelStateMachine extends Construct {
127128
lambdaFunction: new Function(this, 'PollDockerImageAvailableFunc', {
128129
deadLetterQueueEnabled: true,
129130
deadLetterQueue: new Queue(this, 'PollDockerImageAvailableDLQ', {
130-
queueName: 'PollDockerImageAvailableDLQ',
131+
queueName: `${cdk.Stack.of(this).stackName}-PollDockerImageAvailableDLQ`,
131132
enforceSSL: true,
132133
}),
133134
runtime: getDefaultRuntime(),
@@ -150,7 +151,7 @@ export class CreateModelStateMachine extends Construct {
150151
lambdaFunction: new Function(this, 'HandleFailureFunc', {
151152
deadLetterQueueEnabled: true,
152153
deadLetterQueue: new Queue(this, 'HandleFailureDLQ', {
153-
queueName: 'HandleFailureDLQ',
154+
queueName: `${cdk.Stack.of(this).stackName}-HandleFailureDLQ`,
154155
enforceSSL: true,
155156
}),
156157
runtime: getDefaultRuntime(),
@@ -179,7 +180,7 @@ export class CreateModelStateMachine extends Construct {
179180
lambdaFunction: new Function(this, 'StartCreateStackFunc', {
180181
deadLetterQueueEnabled: true,
181182
deadLetterQueue: new Queue(this, 'StartCreateStackDLQ', {
182-
queueName: 'StartCreateStackDLQ',
183+
queueName: `${cdk.Stack.of(this).stackName}-StartCreateStackDLQ`,
183184
enforceSSL: true,
184185
}),
185186
runtime: getDefaultRuntime(),
@@ -202,7 +203,7 @@ export class CreateModelStateMachine extends Construct {
202203
lambdaFunction: new Function(this, 'PollCreateStackFunc', {
203204
deadLetterQueueEnabled: true,
204205
deadLetterQueue: new Queue(this, 'PollCreateStackDLQ', {
205-
queueName: 'PollCreateStackDLQ',
206+
queueName: `${cdk.Stack.of(this).stackName}-PollCreateStackDLQ`,
206207
enforceSSL: true,
207208
}),
208209
runtime: getDefaultRuntime(),
@@ -231,7 +232,7 @@ export class CreateModelStateMachine extends Construct {
231232
lambdaFunction: new Function(this, 'AddModelToLitellmFunc', {
232233
deadLetterQueueEnabled: true,
233234
deadLetterQueue: new Queue(this, 'AddModelToLitellmDLQ', {
234-
queueName: 'AddModelToLitellmDLQ',
235+
queueName: `${cdk.Stack.of(this).stackName}-AddModelToLitellmDLQ`,
235236
enforceSSL: true,
236237
}),
237238
runtime: getDefaultRuntime(),

lib/models/state-machine/delete-model.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717

18+
import * as cdk from 'aws-cdk-lib';
1819
import { Construct } from 'constructs';
1920
import { LambdaInvoke } from 'aws-cdk-lib/aws-stepfunctions-tasks';
2021
import {
@@ -73,7 +74,7 @@ export class DeleteModelStateMachine extends Construct {
7374
lambdaFunction: new Function(this, 'SetModelToDeletingFunc', {
7475
deadLetterQueueEnabled: true,
7576
deadLetterQueue: new Queue(this, 'SetModelToDeletingDLQ', {
76-
queueName: 'SetModelToDeletingDLQ',
77+
queueName: `${cdk.Stack.of(this).stackName}-SetModelToDeletingDLQ`,
7778
enforceSSL: true,
7879
}),
7980
runtime: getDefaultRuntime(),
@@ -96,7 +97,7 @@ export class DeleteModelStateMachine extends Construct {
9697
lambdaFunction: new Function(this, 'DeleteFromLitellmFunc', {
9798
deadLetterQueueEnabled: true,
9899
deadLetterQueue: new Queue(this, 'DeleteFromLitellmDLQ', {
99-
queueName: 'DeleteFromLitellmDLQ',
100+
queueName: `${cdk.Stack.of(this).stackName}-DeleteFromLitellmDLQ`,
100101
enforceSSL: true,
101102
}),
102103
runtime: getDefaultRuntime(),
@@ -119,7 +120,7 @@ export class DeleteModelStateMachine extends Construct {
119120
lambdaFunction: new Function(this, 'DeleteStackFunc', {
120121
deadLetterQueueEnabled: true,
121122
deadLetterQueue: new Queue(this, 'DeleteStackDLQ', {
122-
queueName: 'DeleteStackDLQ',
123+
queueName: `${cdk.Stack.of(this).stackName}-DeleteStackDLQ`,
123124
enforceSSL: true,
124125
}),
125126
runtime: getDefaultRuntime(),
@@ -142,7 +143,7 @@ export class DeleteModelStateMachine extends Construct {
142143
lambdaFunction: new Function(this, 'MonitorDeleteStackFunc', {
143144
deadLetterQueueEnabled: true,
144145
deadLetterQueue: new Queue(this, 'MonitorDeleteStackDLQ', {
145-
queueName: 'MonitorDeleteStackDLQ',
146+
queueName: `${cdk.Stack.of(this).stackName}-MonitorDeleteStackDLQ`,
146147
enforceSSL: true,
147148
}),
148149
runtime: getDefaultRuntime(),
@@ -165,7 +166,7 @@ export class DeleteModelStateMachine extends Construct {
165166
lambdaFunction: new Function(this, 'DeleteFromDdbFunc', {
166167
deadLetterQueueEnabled: true,
167168
deadLetterQueue: new Queue(this, 'DeleteFromDdbDLQ', {
168-
queueName: 'DeleteFromDdbDLQ',
169+
queueName: `${cdk.Stack.of(this).stackName}-DeleteFromDdbDLQ`,
169170
enforceSSL: true,
170171
}),
171172
runtime: getDefaultRuntime(),

lib/models/state-machine/update-model.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
import { Vpc } from '../../networking/vpc';
3737
import { Queue } from 'aws-cdk-lib/aws-sqs';
3838
import { getDefaultRuntime } from '../../api-base/utils';
39+
import * as cdk from 'aws-cdk-lib';
3940

4041

4142
type UpdateModelStateMachineProps = BaseProps & {
@@ -83,7 +84,7 @@ export class UpdateModelStateMachine extends Construct {
8384
lambdaFunction: new Function(this, 'HandleJobIntakeFunc', {
8485
deadLetterQueueEnabled: true,
8586
deadLetterQueue: new Queue(this, 'HandleJobIntakeDLQ', {
86-
queueName: 'HandleJobIntakeDLQ',
87+
queueName: `${cdk.Stack.of(this).stackName}-HandleJobIntakeDLQ`,
8788
enforceSSL: true,
8889
}),
8990
runtime: getDefaultRuntime(),
@@ -106,7 +107,7 @@ export class UpdateModelStateMachine extends Construct {
106107
lambdaFunction: new Function(this, 'HandlePollCapacityFunc', {
107108
deadLetterQueueEnabled: true,
108109
deadLetterQueue: new Queue(this, 'HandlePollCapacityDLQ', {
109-
queueName: 'HandlePollCapacityDLQ',
110+
queueName: `${cdk.Stack.of(this).stackName}-HandlePollCapacityDLQ`,
110111
enforceSSL: true,
111112
}),
112113
runtime: getDefaultRuntime(),
@@ -129,7 +130,7 @@ export class UpdateModelStateMachine extends Construct {
129130
lambdaFunction: new Function(this, 'HandleFinishUpdateFunc', {
130131
deadLetterQueueEnabled: true,
131132
deadLetterQueue: new Queue(this, 'HandleFinishUpdateDLQ', {
132-
queueName: 'HandleFinishUpdateDLQ',
133+
queueName: `${cdk.Stack.of(this).stackName}-HandleFinishUpdateDLQ`,
133134
enforceSSL: true,
134135
}),
135136
runtime: getDefaultRuntime(),

lib/rag/state_machine/delete-pipeline.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class DeletePipelineStateMachine extends Construct {
5555
description: 'Key for encrypting Lambda environment variables'
5656
});
5757
const deletePipelineRole = new Role(this, 'DeletePipelineRole', {
58-
roleName: 'DeletePipelineRole',
58+
roleName: `${config.deploymentName}-DeletePipelineRole`,
5959
assumedBy: new ServicePrincipal('lambda.amazonaws.com'),
6060
});
6161
new StringParameter(this, 'DeletePipelineRoleArnParameter', {

lib/rag/state_machine/ingest-pipeline.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export class IngestPipelineStateMachine extends Construct {
115115
}
116116

117117
const ingestPipelineRole = new Role(this, 'IngestPipelineRole', {
118-
roleName: 'IngestPipelineRole',
118+
roleName: `${config.deploymentName}-IngestPipelineRole`,
119119
assumedBy: new ServicePrincipal('lambda.amazonaws.com'),
120120
});
121121
new StringParameter(this, 'IngestPipelineRoleArnParameter', {

0 commit comments

Comments
 (0)