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:
- lambda.amazonaws.com
Action:
- 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.