Skip to content

Commit

Permalink
#115 - Turn on API Gateway Access Logs
Browse files Browse the repository at this point in the history
  • Loading branch information
formkiqMike committed Feb 16, 2023
1 parent ed8ad3a commit a352d0c
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,14 @@ Conditions:
- Condition: HasTypesenseApiKey

Resources:


DocumentsApiRequestsLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${DocumentsApiRequests}"
RetentionInDays: 90

DocumentsApiRequests:
Type: AWS::Serverless::Function
DependsOn:
Expand Down Expand Up @@ -197,6 +204,20 @@ Resources:
Ref: DocumentsApiRequests
Principal: apigateway.amazonaws.com

DocumentsStageAccessLogs:
Type: AWS::Logs::LogGroup
Properties:
RetentionInDays: 90
LogGroupName:
Fn::Sub: "/${AWS::StackName}/APIDocumentsHttpAccessLogs"

IamDocumentsStageAccessLogs:
Type: AWS::Logs::LogGroup
Properties:
RetentionInDays: 90
LogGroupName:
Fn::Sub: "/${AWS::StackName}/APIDocumentsIamAccessLogs"

DocumentsStage:
Type: AWS::ApiGatewayV2::Stage
Properties:
Expand All @@ -206,6 +227,12 @@ Resources:
Description:
Fn::Sub: "Documents API ${AppEnvironment}"
StageName: "$default"
AccessLogSettings:
DestinationArn:
Fn::GetAtt:
- DocumentsStageAccessLogs
- Arn
Format: '{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "integrationStatus": $context.integrationStatus, "integrationLatency": $context.integrationLatency, "responseLength":"$context.responseLength" }'

IamDocumentsStage:
Type: AWS::ApiGatewayV2::Stage
Expand All @@ -216,6 +243,13 @@ Resources:
Description:
Fn::Sub: "Documents IAM API ${AppEnvironment}"
StageName: "$default"
AccessLogSettings:
DestinationArn:
Fn::GetAtt:
- IamDocumentsStageAccessLogs
- Arn
Format: '{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "integrationStatus": $context.integrationStatus, "integrationLatency": $context.integrationLatency, "responseLength":"$context.responseLength" }'


DocumentsHttpApiUrlParameter:
Type: AWS::SSM::Parameter
Expand Down
25 changes: 23 additions & 2 deletions lambda-s3/src/main/resources/cloudformation/template-sar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,13 @@ Resources:
Value:
Fn::Sub: "${AWS::StackName}"

DocumentActionsProcessorLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${DocumentActionsProcessor}"
RetentionInDays: 90

DocumentActionsProcessor:
Type: AWS::Serverless::Function
DependsOn:
Expand Down Expand Up @@ -247,7 +254,14 @@ Resources:
- DocumentActionsQueue
- Arn
BatchSize: 10


StagingS3CreateLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${StagingS3Create}"
RetentionInDays: 90

StagingS3Create:
Type: AWS::Serverless::Function
DependsOn:
Expand Down Expand Up @@ -325,7 +339,14 @@ Resources:
- ''
- - 'arn:aws:s3:::'
- Fn::Sub: "formkiq-${FormKiQType}-${AppEnvironment}-staging-${AWS::AccountId}"


DocumentsS3UpdateLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${DocumentsS3Update}"
RetentionInDays: 90

DocumentsS3Update:
Type: AWS::Serverless::Function
DependsOn:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@ Conditions:
- Condition: CreateResources

Resources:

TypesenseProcessorLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${TypesenseProcessor}"
RetentionInDays: 90

TypesenseProcessor:
Type: AWS::Serverless::Function
Expand Down Expand Up @@ -485,6 +492,13 @@ Resources:
- Arn
PayloadFormatVersion: "1.0"

StageAccessLogs:
Type: AWS::Logs::LogGroup
Properties:
RetentionInDays: 90
LogGroupName:
Fn::Sub: "/${AWS::StackName}/APITypeSenseAccessLogs"

Stage:
Type: AWS::ApiGatewayV2::Stage
Condition: CreateResources
Expand All @@ -493,6 +507,12 @@ Resources:
Ref: ApiGateway
StageName: $default
AutoDeploy: true
AccessLogSettings:
DestinationArn:
Fn::GetAtt:
- StageAccessLogs
- Arn
Format: '{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "integrationStatus": $context.integrationStatus, "integrationLatency": $context.integrationLatency, "responseLength":"$context.responseLength" }'

Route:
Type: AWS::ApiGatewayV2::Route
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,14 @@ Resources:
Fn::Sub: "${AppEnvironment}"
StackName:
Fn::Sub: "${AWS::StackName}"


EmailNotifyLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${EmailNotify}"
RetentionInDays: 90

EmailNotify:
Type: AWS::Serverless::Function
DependsOn:
Expand Down
24 changes: 22 additions & 2 deletions websocket-api/src/main/resources/cloudformation/template-sar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,14 @@ Resources:
Properties:
ApiId:
Ref: WebSocketApi


StageAccessLogs:
Type: AWS::Logs::LogGroup
Properties:
RetentionInDays: 90
LogGroupName:
Fn::Sub: "/${AWS::StackName}/APIWebsocketAccessLogs"

Stage:
Type: AWS::ApiGatewayV2::Stage
Properties:
Expand All @@ -109,6 +116,12 @@ Resources:
Ref: Deployment
ApiId:
Ref: WebSocketApi
AccessLogSettings:
DestinationArn:
Fn::GetAtt:
- StageAccessLogs
- Arn
Format: '{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "integrationStatus": $context.integrationStatus, "integrationLatency": $context.integrationLatency, "responseLength":"$context.responseLength" }'
Tags:
Application:
Fn::Sub: "FormKiQ ${FormKiQType}"
Expand Down Expand Up @@ -193,7 +206,14 @@ Resources:
Fn::Sub: "${AppEnvironment}"
StackName:
Fn::Sub: "${AWS::StackName}"


ApiFunctionLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName:
Fn::Sub: "/aws/lambda/${ApiFunction}"
RetentionInDays: 90

ApiFunction:
Type: AWS::Serverless::Function
Properties:
Expand Down

0 comments on commit a352d0c

Please sign in to comment.