@aws/nx-plugin 0.79.1 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -110,11 +110,15 @@ resource "aws_lambda_function" "api_lambda" {
110
110
  handler = "index.handler"
111
111
  runtime = "nodejs22.x"
112
112
  <%_ } else if (backend.type === 'fastapi') { _%>
113
- handler = "<%= backend.moduleName %>.main.handler"
113
+ handler = "run.sh"
114
114
  runtime = "python3.12"
115
+ layers = ["arn:aws:lambda:${data.aws_region.current.name}:753240598075:layer:LambdaAdapterLayerX86:24"]
115
116
  <%_ } _%>
116
117
  timeout = 30
117
118
  memory_size = 128
119
+ <%_ if (backend.type === 'fastapi') { _%>
120
+ publish = true
121
+ <%_ } _%>
118
122
 
119
123
  source_code_hash = data.archive_file.lambda_zip.output_base64sha256
120
124
 
@@ -123,9 +127,21 @@ resource "aws_lambda_function" "api_lambda" {
123
127
  mode = "Active"
124
128
  }
125
129
 
130
+ <%_ if (backend.type === 'fastapi') { _%>
131
+ # Enable SnapStart for faster cold starts
132
+ snap_start {
133
+ apply_on = "PublishedVersions"
134
+ }
135
+ <%_ } _%>
136
+
126
137
  environment {
127
138
  variables = merge({
128
139
  AWS_CONNECTION_REUSE_ENABLED = "1"
140
+ <%_ if (backend.type === 'fastapi') { _%>
141
+ PORT = "8000"
142
+ AWS_LWA_INVOKE_MODE = "response_stream"
143
+ AWS_LAMBDA_EXEC_WRAPPER = "/opt/bootstrap"
144
+ <%_ } _%>
129
145
  }, var.env)
130
146
  }
131
147
 
@@ -185,6 +201,17 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
185
201
  tags = var.tags
186
202
  }
187
203
 
204
+ <%_ if (backend.type === 'fastapi') { _%>
205
+ # Lambda alias pointing to the latest published version for SnapStart
206
+ resource "aws_lambda_alias" "live" {
207
+ name = "live"
208
+ function_name = aws_lambda_function.api_lambda.function_name
209
+ function_version = aws_lambda_function.api_lambda.version
210
+
211
+ depends_on = [aws_lambda_function.api_lambda]
212
+ }
213
+ <%_ } _%>
214
+
188
215
  <%_ if (auth === 'Cognito') { _%>
189
216
  # Cognito User Pool Authorizer
190
217
  resource "aws_api_gateway_authorizer" "cognito_authorizer" {
@@ -211,14 +238,22 @@ resource "aws_api_gateway_integration" "lambda_integration" {
211
238
 
212
239
  integration_http_method = "POST"
213
240
  type = "AWS_PROXY"
214
- <%_ if (backend.type === 'trpc') { _%>
241
+ <%_ if (backend.type === 'fastapi') { _%>
242
+ # Use the response streaming invocation path with the alias ARN for SnapStart
243
+ uri = "arn:aws:apigateway:${data.aws_region.current.name}:lambda:path/2021-11-15/functions/${aws_lambda_alias.live.arn}/response-streaming-invocations"
244
+ response_transfer_mode = "STREAM"
245
+ <%_ } else if (backend.type === 'trpc') { _%>
215
246
  uri = aws_lambda_function.api_lambda.response_streaming_invoke_arn
216
247
  response_transfer_mode = "STREAM"
217
248
  <%_ } else { _%>
218
249
  uri = aws_lambda_function.api_lambda.invoke_arn
219
250
  <%_ } _%>
220
251
 
252
+ <%_ if (backend.type === 'fastapi') { _%>
253
+ depends_on = [aws_lambda_alias.live]
254
+ <%_ } else { _%>
221
255
  depends_on = [aws_lambda_function.api_lambda]
256
+ <%_ } _%>
222
257
  }
223
258
 
224
259
  # Method for proxy integration
@@ -379,16 +414,41 @@ resource "aws_api_gateway_rest_api_policy" "api_policy" {
379
414
  })
380
415
  }
381
416
 
417
+ <%_ if (backend.type === 'fastapi') { _%>
418
+ # Lambda permission for API Gateway to invoke the function via alias
419
+ <%_ } else { _%>
382
420
  # Lambda permission for API Gateway to invoke the function
421
+ <%_ } _%>
383
422
  resource "aws_lambda_permission" "api_gateway_invoke" {
384
423
  statement_id = "AllowExecutionFromAPIGateway"
385
424
  action = "lambda:InvokeFunction"
386
425
  function_name = aws_lambda_function.api_lambda.function_name
426
+ <%_ if (backend.type === 'fastapi') { _%>
427
+ qualifier = aws_lambda_alias.live.name
428
+ <%_ } _%>
387
429
  principal = "apigateway.amazonaws.com"
388
430
  source_arn = "${module.rest_api.api_execution_arn}/*/*"
389
431
 
432
+ <%_ if (backend.type === 'fastapi') { _%>
433
+ depends_on = [module.rest_api, aws_lambda_alias.live]
434
+ <%_ } else { _%>
390
435
  depends_on = [module.rest_api, aws_lambda_function.api_lambda]
436
+ <%_ } _%>
437
+ }
438
+
439
+ <%_ if (backend.type === 'fastapi') { _%>
440
+ # Lambda permission for API Gateway to invoke with response streaming via alias
441
+ resource "aws_lambda_permission" "api_gateway_invoke_streaming" {
442
+ statement_id = "AllowStreamingFromAPIGateway"
443
+ action = "lambda:InvokeFunctionWithResponseStream"
444
+ function_name = aws_lambda_function.api_lambda.function_name
445
+ qualifier = aws_lambda_alias.live.name
446
+ principal = "apigateway.amazonaws.com"
447
+ source_arn = "${module.rest_api.api_execution_arn}/*/*"
448
+
449
+ depends_on = [module.rest_api, aws_lambda_alias.live]
391
450
  }
451
+ <%_ } _%>
392
452
 
393
453
  # Add API url to runtime config
394
454
  module "add_url_to_runtime_config" {
@@ -104,7 +104,6 @@ export declare const PY_VERSIONS: {
104
104
  readonly checkov: "==3.2.505";
105
105
  readonly fastapi: "==0.131.0";
106
106
  readonly 'fastapi[standard]': "==0.131.0";
107
- readonly mangum: "==0.21.0";
108
107
  readonly mcp: "==1.26.0";
109
108
  readonly 'pip-check-updates': "==0.28.0";
110
109
  readonly 'strands-agents': "==1.27.0";
@@ -105,7 +105,6 @@ exports.PY_VERSIONS = {
105
105
  checkov: '==3.2.505',
106
106
  fastapi: '==0.131.0',
107
107
  'fastapi[standard]': '==0.131.0',
108
- mangum: '==0.21.0',
109
108
  mcp: '==1.26.0',
110
109
  'pip-check-updates': '==0.28.0',
111
110
  'strands-agents': '==1.27.0',
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":"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"}