amazon-s3 - 创建具有特定前缀的对象时触发 lambda

标签 amazon-s3 aws-lambda aws-cloudformation aws-sam

我正在创建一个 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/

相关文章:

node.js - NodeJS Lambda 调用错误 : Unable to stringify response body

amazon-web-services - 私有(private) AWS Lambda API 端点

amazon-ec2 - 如何使用 Cloud Formation 或 AWS CLI 将扩展策略添加到自动扩展组

amazon-web-services - "The specified key does not exist"用于部署在使用 CloudFront 部署在 S3 上的 VueJS 应用程序

amazon-web-services - 从Internet下载文件到S3存储桶

amazon-web-services - 使用 AmazonLambdaClient 时,Localstack 无法在 us-east-1 以外的任何区域内找到 lambda 函数

aws-cloudformation - AWS 云形成 : Template format error: At least one Resources member must be defined

javascript - HTML POST -> 重定向工作,XMLHTTPrequest -> 重定向不工作(无法从 null 发出任何请求)?

c# - 我可以使用 AWS 开发工具包监控 S3 下载的进度吗?

amazon-web-services - 我可以使用 Cloudformation 将 AMI 迁移到其他区域吗?