How to enable cloud watch logs for API Gateway using Serverless

Found the answer. Basically i added a plugin and modified the resource as shown below to do the trick.

service: serverless-middleware-getnews
provider:
  name: aws
  runtime: nodejs4.3
  role: arn:aws:iam::2914332239557:role/serverless-lambda-role
  deploymentBucket: serverless-bucket
  stage: ${opt:stage, self:custom.defaultStage}
  profile: ${self:custom.profiles.${self:provider.stage}}
  region: us-east-1
  environment: ${file(env-vars/${self:custom.stage}.yml)}
  memorySize: 1024
  timeout: 300
custom:
  stage: "${opt:stage, self:provider.stage}"
  defaultStage: stage
  profiles:
    dev: serverless-middleware-news-dev
    stage: serverless-middleware-news-stage
    prod: serverless-middleware-news-prod
plugins:
  - serverless-plugin-stage-variables

package:
   individually: true
exclude:
  - .gitignore
  - .jshintrc
  - .npmignore
  - .env
  - env-vars/**
  - context.json
  - event-data/**
  - data/**
  - deploy.env
  - Gruntfile.js
  - policy-document.txt
  - README.md

functions:
  feed:
    handler: functions/news.handler
    name: serverless-news-${self:provider.stage}
    events:
      - http:
          path: news
          method: get
          cors: true

resources:
  Resources:
     ApiGatewayStage:
      Type: AWS::ApiGateway::Stage
      Properties:
        MethodSettings:
          - DataTraceEnabled: true
            HttpMethod: "*"
            LoggingLevel: INFO
            ResourcePath: "/*"
            MetricsEnabled: true
2 Likes