0
votes

I've followed the AWS SAM documentation for hands-on learning experience and have reached this particular section: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html

Above page in the documentation explains how to map the S3 events to any resource and I've done something similar on my local machine. My local template below.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  CreateThumbnail:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: hello_world/
      Handler: app.lambda_handler
      Runtime: python3.6
      Timeout: 60
      Policies: AWSLambdaExecute
      Events:
        CreateThumbnailEvent:
          Type: S3
          Properties:
            Bucket: !Ref testBucket
            Events: s3:ObjectCreated:*

  testBucket:
    Type: AWS::S3::Bucket

Now, when I build and deploy above SAM template, while a new S3 bucket is getting created, the 'object creation' event is not mapped to the Lambda function created. PSB screenshot.

Screenshot showing that S3 events are not mapped

I haven't found any articles or blogs on this error (probably, I'm doing a silly mistake here)

Please help.

Thanks.

3
What was your SAM cli command?Richard Rublev
sam build followed by sam deploy --guidedThilak

3 Answers

1
votes

I realized that for some reason, the AWS Lambda console is not showing the trigger event but the mapping is successful. I've also validated by uploading sample image to the bucket which triggered the lambda.

The event mapping can be seen in the properties section of the S3 bucket created.

S3 test bucket created -> Properties -> Events

S3 bucket properties showing the created events

1
votes
0
votes

First create bucket where you plan to save packaged code

aws s3 mb s3://youtbucketname

After sam build go for

sam package --template-file template.yaml --s3-bucket <yourbucketname>