@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.
- package/LICENSE-THIRD-PARTY +69 -11
- package/package.json +1 -1
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +298 -57
- package/src/py/fast-api/files/app/__name__/init.py.template +61 -16
- package/src/py/fast-api/files/app/__name__/main.py.template +6 -3
- package/src/py/fast-api/files/app/run.sh.template +2 -0
- package/src/py/fast-api/generator.js +10 -2
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +12 -0
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +15 -0
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +28 -2
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +30 -4
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +44 -2
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +62 -2
- package/src/utils/versions.d.ts +0 -1
- package/src/utils/versions.js +0 -1
- package/src/utils/versions.js.map +1 -1
|
@@ -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 = "
|
|
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 === '
|
|
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" {
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -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";
|
package/src/utils/versions.js
CHANGED
|
@@ -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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"}
|