Serverless Apigateway Log Retention

Control the retention of your AWS ApiGateway access logs and execution logs.

View on Github

ApiGateway Log Retention

Control the retention of your ApiGateway access logs and execution logs.

Installation

From your target serverless project, run:

npm install serverless-apigateway-log-retention

Add the plugin to your serverless.yml:

plugins:
  - serverless-apigateway-log-retention

Configuration

Configuration happens 'globally' via custom.apigatewayLogRetention

PLEASE NOTE THAT THE PLUGIN REQUIRES THE FOLLOWING AWS PERMISSIONS:

CloudWatch Logs

  • putRetentionPolicy
  • deleteRetentionPolicy

ApiGateway

  • getRestApis
  • getStage

Plugin Options

accessLogging.enabled (optional) - Whether or not to update access logging retention policy. Set to false by default.

accessLogging.days (required) - Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653 and 'never expire'.

executionLogging.enabled (optional) - Whether or not to update execution logging retention policy. Set to false by default.

executionLogging.days (required) - Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653 and 'never expire'.

Examples

serverless.yml - Enabled for execution logging and disabled for access logging:

service: sample

plugins:
  - serverless-apigateway-log-retention

provider:
  name: aws

custom:
  apigatewayLogRetention:
    executionLogging:
      enabled: true
      days: 'never expire'


serverless.yml - Enabled for access logging and execution logging:

service: sample

plugins:
  - serverless-apigateway-log-retention

provider:
  name: aws

custom:
  apigatewayLogRetention:
    executionLogging:
      enabled: true
      days: 14
    accessLogging:
      enabled: true
      days: 7

Note: This plugin might not be suitable if you have over 500 APIs in the region you are deploying to.