Setting Up an S3 Trigger for an AWS Lambda Function in the AWS Clouformation

To set up an AWS Lambda function, an Amazon S3 bucket, and an S3 trigger for the function using AWS CloudFormation, you can use the AWS::Lambda::Function, AWS::S3::Bucket, and AWS::Lambda::EventSourceMapping resources. Here is an example of how you might use these resources in a CloudFormation template:

AWSTemplateFormatVersion: "2010-09-09" Description: "Create Lambda S3 triggger"

Parameters: MyBucketName: Description: S3 Bucket Name Type: String Default: abhaysingh091290

Resources: MyIAMRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement:

  • Effect: Allow Principal: Service:
    • lambda.amazonaws.com Action:
      • sts:AssumeRole Policies:
      • PolicyName: MyPolicy PolicyDocument: Version: 2012-10-17 Statement:
      • Effect: Allow Action:
      • s3:ListBucket Resource: arn:aws:s3:::${MyBucketName} LambdaPermission: Type: AWS::Lambda::Permission Properties: Action: 'lambda:InvokeFunction' FunctionName: !Ref MyFunction Principal: s3.amazonaws.com SourceArn: !Sub 'arn:aws:s3:::${MyBucketName}' SourceAccount: !Ref AWS::AccountId MyFunction: Type: AWS::Lambda::Function Properties: Code: ZipFile: | def handler(event, context): return "Hello, World!" Handler: index.handler Role: !GetAtt MyIAMRole.Arn Runtime: python3.8 Timeout: 30 MyBucket: Type: AWS::S3::Bucket Properties: BucketName: !Ref MyBucketName NotificationConfiguration: LambdaConfigurations:
  • Event: s3:ObjectCreated:* Function: !GetAtt MyFunction.Arn Filter: S3Key: Rules:
    • Name: Suffix Value: ".txt"
    • Name: Prefix Value: "test-"

The post Setting Up an S3 Trigger for an AWS Lambda Function in the AWS Clouformation appeared first on Abhay Singh.