diff --git a/project-d-serverless-api/apigateway.tf b/project-d-serverless-api/apigateway.tf index bdcbea8..a4341b5 100644 --- a/project-d-serverless-api/apigateway.tf +++ b/project-d-serverless-api/apigateway.tf @@ -157,6 +157,7 @@ resource "aws_api_gateway_stage" "prod" { rest_api_id = aws_api_gateway_rest_api.api.id deployment_id = aws_api_gateway_deployment.deploy.id stage_name = "prod" + xray_tracing_enabled = true # Access logging: records who called which endpoint and when access_log_settings { diff --git a/project-d-serverless-api/iam.tf b/project-d-serverless-api/iam.tf index b9be6d8..05f0c6d 100644 --- a/project-d-serverless-api/iam.tf +++ b/project-d-serverless-api/iam.tf @@ -51,6 +51,12 @@ resource "aws_iam_role_policy_attachment" "lambda_logs" { policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" } +# Policy: Allow Lambda to send traces to X-Ray +resource "aws_iam_role_policy_attachment" "lambda_xray" { + role = aws_iam_role.lambda_role.name + policy_arn = "arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess" +} + # ============================================================================= # IAM Role for API Gateway -> CloudWatch Logs # ============================================================================= diff --git a/project-d-serverless-api/lambda.tf b/project-d-serverless-api/lambda.tf index 1ff457a..f627bb2 100644 --- a/project-d-serverless-api/lambda.tf +++ b/project-d-serverless-api/lambda.tf @@ -28,6 +28,10 @@ resource "aws_lambda_function" "api" { tags = { Project = var.project_name } + + tracing_config { + mode = "Active" + } } # =============================================================================