我正在创建一个 lambda,当在某个存储桶中创建对象时应该调用该 lambda。我只希望针对某些键前缀调用它。我见过examples定义存储桶时,在存储桶上使用 NotificationConfiguration
进行设置:
NotificationConfiguration:
LambdaConfigurations:
- Function: !Ref SomeLambdaArn
Event: "s3:ObjectCreated:*"
Filter:
S3Key:
Rules:
- Name: prefix
Value: zip
但是我不想修改存储桶的 CloudFormation 定义。与 SAM,lambda event triggers can be defined on the lambda :
Events:
BucketEvent1:
Type: S3
Properties:
Bucket: Ref: Bucket1
Events:
- 's3:ObjectCreated:*'
但是有没有办法限制它只针对某些前缀触发?或者,有没有办法将 NotificationConfiguration
添加到现有存储桶?
最佳答案
如果我理解正确的话,您想在 lambda 中定义前缀而不是存储桶。
我就是这样做的,据我所知,它就像一个魅力
Resources:
ConvertToParquet:
Type: AWS::Serverless::Function
Properties:
CodeUri: handler/convert_to_parquet
MemorySize: 3008
Timeout: 90
Policies:
- AmazonS3FullAccess
Events:
SummaryCSVCreated:
Type: S3
Properties:
Bucket: !Ref UploadBucket
Events: s3:ObjectCreated:*
Filter:
S3Key:
Rules:
- Name: suffix
Value: '.txt'
UploadBucket:
Type: AWS::S3::Bucket
关于amazon-s3 - 创建具有特定前缀的对象时触发 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53623648/