Recap
What did we do so far? We enabled tracing on API and Lambda and we enabled enhanced monitoring for Lambda as well. We should do one more thing in order to start collecting information in proper way
API logs
By default logs for API Gateway are disabled.
In API service navigate to your API, then Stages
, Prod
(if you created the resource from the template), select Logs/Tracing
tab (yes, you were here before). For the test enable all three settings and change level to INFO
.
Trigger your API multiple times to generate logs. After this you should see API logs in CloudWatch.
SAM template
Ok, it is time to add it to our SAM template. But wait! It is not "just add". Unfortunately, we need to rewrite almost whole template.
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::Serverless-2016-10-31 Description: simple Lambda Resources: lambdaDemoApi: Type: AWS::Serverless::Api Properties: StageName: Prod Description: 'Prod stage' TracingEnabled: true MethodSettings: - HttpMethod: '*' LoggingLevel: INFO ResourcePath: '/*' MetricsEnabled: true DataTraceEnabled: true lambdaFunction: Type: AWS::Serverless::Function Properties: Handler: simplefunction.handler CodeUri: lambdafunction/ Runtime: python3.8 Policies: - CloudWatchLambdaInsightsExecutionRolePolicy AutoPublishAlias: live Description: Simple demo function MemorySize: 128 Timeout: 10 Tracing: Active Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14" Events: simpleApi: Type: Api Properties: RestApiId: !Ref lambdaDemoApi Path: / Method: get
I redesigned the template, removed part of the Events
configuration and I created a new resource - lambdaDemoApi
.
That's all, logs are enabled and all requests will be catched and stored in CloudWatch Logs. Please remember, I enabled here standard logs. There is a possibility to shape logs as you wish or need. We will come back to it. Earlier than you expect!
Top comments (0)