You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the **ultimate example** that demonstrates **ALL features** of the AWS Lambda Terraform module in a single, comprehensive deployment. This example showcases every capability including VPC integration, database connectivity, dead letter queues, versioning, aliases, provisioned concurrency, multiple event sources, KMS encryption, and advanced monitoring.
4
-
5
-
## 🚀 What This Example Creates
6
-
7
-
### **Core Infrastructure**
8
-
- ✅ **RDS PostgreSQL Database** with encryption and security groups
9
-
- ✅ **KMS Key** for environment variable encryption
10
-
11
-
### **Lambda Function Features**
12
-
- ✅ **ARM64 Architecture** for better price-performance
13
-
- ✅ **VPC Integration** with private subnet deployment
14
-
- ✅ **Dead Letter Queue** with SQS for error handling
15
-
- ✅ **Versioning & Aliases** for blue-green deployments
16
-
- ✅ **Provisioned Concurrency** to eliminate cold starts
17
-
- ✅ **KMS Encryption** for environment variables
18
-
- ✅ **Lambda Insights** for advanced monitoring
19
-
- ✅ **Function URL** with CORS configuration
20
-
21
-
### **Event Sources & Integrations**
22
-
- ✅ **S3 Bucket** with object event notifications
23
-
- ✅ **SNS Topic** with Lambda subscription
24
-
- ✅ **SQS Queue** with event source mapping
25
-
- ✅ **API Gateway** with Lambda proxy integration
26
-
- ✅ **EventBridge** with scheduled invocations
27
-
- ✅ **SSM Parameter Store** with 10+ parameters
28
-
29
-
### **Monitoring & Observability**
30
-
- ✅ **CloudWatch Dashboard** with comprehensive metrics
31
-
- ✅ **CloudWatch Alarms** for errors, duration, and DLQ
32
-
- ✅ **Custom Metrics** for application-specific monitoring
33
-
- ✅ **Structured Logging** with configurable levels
| <aname="input_acl"></a> [acl](#input\_acl)| ACL value |`string`| n/a | yes |
132
65
| <aname="input_alias_name"></a> [alias\_name](#input\_alias\_name)| Name of the Lambda alias |`string`|`"production"`| no |
133
66
| <aname="input_api_stage_name"></a> [api\_stage\_name](#input\_api\_stage\_name)| API Gateway stage name |`string`|`"prod"`| no |
134
67
| <aname="input_aws_region"></a> [aws\_region](#input\_aws\_region)| AWS region for resources |`string`|`"us-east-1"`| no |
@@ -152,26 +85,16 @@ terraform apply
152
85
153
86
| Name | Description |
154
87
|------|-------------|
155
-
|<a name="output_api_gateway_rest_api_id"></a> [api\_gateway\_rest\_api\_id](#output\_api\_gateway\_rest\_api\_id) | ID of the API Gateway REST API |
156
-
|<a name="output_api_gateway_url"></a> [api\_gateway\_url](#output\_api\_gateway\_url) | URL of the API Gateway endpoint |
88
+
| <aname="output_alias_arn"></a> [alias\_arn](#output\_alias\_arn)| ARN of the Lambda alias |
89
+
| <aname="output_alias_name"></a> [alias\_name](#output\_alias\_name)| Name of the Lambda alias |
90
+
| <aname="output_arn"></a> [arn](#output\_arn)| ARN of the Lambda function |
157
91
| <aname="output_cloudwatch_dashboard_url"></a> [cloudwatch\_dashboard\_url](#output\_cloudwatch\_dashboard\_url)| URL to the CloudWatch dashboard |
158
92
| <aname="output_dead_letter_queue_arn"></a> [dead\_letter\_queue\_arn](#output\_dead\_letter\_queue\_arn)| ARN of the Dead Letter Queue |
159
93
| <aname="output_dead_letter_queue_url"></a> [dead\_letter\_queue\_url](#output\_dead\_letter\_queue\_url)| URL of the Dead Letter Queue |
160
-
|<a name="output_eventbridge_rule_name"></a> [eventbridge\_rule\_name](#output\_eventbridge\_rule\_name) | Name of the EventBridge rule |
161
-
|<a name="output_kms_key_arn"></a> [kms\_key\_arn](#output\_kms\_key\_arn) | ARN of the KMS key used for encryption |
162
-
|<a name="output_kms_key_id"></a> [kms\_key\_id](#output\_kms\_key\_id) | ID of the KMS key used for encryption |
163
-
|<a name="output_lambda_alias_arn"></a> [lambda\_alias\_arn](#output\_lambda\_alias\_arn) | ARN of the Lambda alias |
164
-
|<a name="output_lambda_alias_name"></a> [lambda\_alias\_name](#output\_lambda\_alias\_name) | Name of the Lambda alias |
165
-
|<a name="output_lambda_function_arn"></a> [lambda\_function\_arn](#output\_lambda\_function\_arn) | ARN of the Lambda function |
166
-
|<a name="output_lambda_function_name"></a> [lambda\_function\_name](#output\_lambda\_function\_name) | Name of the Lambda function |
167
-
|<a name="output_lambda_function_url"></a> [lambda\_function\_url](#output\_lambda\_function\_url) | Lambda function URL (if enabled) |
168
-
|<a name="output_lambda_function_version"></a> [lambda\_function\_version](#output\_lambda\_function\_version) | Published version of the Lambda function |
169
-
|<a name="output_lambda_insights_url"></a> [lambda\_insights\_url](#output\_lambda\_insights\_url) | URL to Lambda Insights |
170
-
|<a name="output_lambda_role_arn"></a> [lambda\_role\_arn](#output\_lambda\_role\_arn) | ARN of the Lambda execution role |
171
-
|<a name="output_s3_bucket_arn"></a> [s3\_bucket\_arn](#output\_s3\_bucket\_arn) | ARN of the S3 bucket for event source |
94
+
| <aname="output_insights_url"></a> [insights\_url](#output\_insights\_url)| URL to Lambda Insights |
95
+
| <aname="output_name"></a> [name](#output\_name)| Name of the Lambda function |
96
+
| <aname="output_role_arn"></a> [role\_arn](#output\_role\_arn)| ARN of the Lambda execution role |
172
97
| <aname="output_s3_bucket_name"></a> [s3\_bucket\_name](#output\_s3\_bucket\_name)| Name of the S3 bucket for event source |
173
-
|<a name="output_sns_topic_arn"></a> [sns\_topic\_arn](#output\_sns\_topic\_arn) | ARN of the SNS topic |
174
-
|<a name="output_sqs_queue_arn"></a> [sqs\_queue\_arn](#output\_sqs\_queue\_arn) | ARN of the SQS queue |
175
-
|<a name="output_sqs_queue_url"></a> [sqs\_queue\_url](#output\_sqs\_queue\_url) | URL of the SQS queue |
176
-
|<a name="output_ssm_parameter_names"></a> [ssm\_parameter\_names](#output\_ssm\_parameter\_names) | Names of the created SSM parameters |
98
+
| <aname="output_url"></a> [url](#output\_url)| Lambda function URL (if enabled) |
99
+
| <aname="output_version"></a> [version](#output\_version)| Published version of the Lambda function |
0 commit comments