1

我在下面有 CF 模板

我需要为 s3 PUT 事件触发 lambda 函数

Event type: ObjectCreatedByPut

https://aws.amazon.com/premiumsupport/knowledge-center/cloudformation-s3-notification-config/

AWSTemplateFormatVersion: "2010-09-09"
Transform:  'AWS::Serverless-2016-10-31'

rData:
        Type: AWS::Serverless::Function
        Properties:
            CodeUri: functions/load_data
            FunctionName: sample-function
            Handler: lambda_function.lambda_handler
            Runtime: python3.8
            MemorySize: 3008
            Timeout: 100
            Role: !Sub arn:aws:iam::${AWS::AccountId}:role/main_service_role
            Environment:
                Variables:
                    bucket_name: sample-bucket
                    file_name: config/test.csv
                    
4

2 回答 2

0

您可以将事件添加到您的模板。但对于S3 事件

S3 存储桶名称。此存储桶必须存在于同一模板中。

因此,您的模板可以修改如下:

AWSTemplateFormatVersion: "2010-09-09"
Transform:  'AWS::Serverless-2016-10-31'
Resources:

  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: test-bucket-3422344

  rData:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: functions/load_data     
      FunctionName: sample-function
      Handler: lambda_function.lambda_handler
      Runtime: python3.8
      MemorySize: 3008
      Timeout: 100
      Role: !Sub arn:aws:iam::${AWS::AccountId}:role/main_service_role
      Environment:
        Variables:
          bucket_name: sample-bucket
          file_name: config/test.csv
      Events:
        S3Event:
          Type: S3
          Properties:
            Bucket: !Ref MyBucket
            Events: s3:ObjectCreated:Put          
              
于 2021-02-22T18:58:25.157 回答
0
AWSTemplateFormatVersion: "2010-09-09"
Transform:  'AWS::Serverless-2016-10-31'

rData:
        Type: AWS::Serverless::Function
        Properties:
            CodeUri: functions/load_data
            FunctionName: sample-function
            Handler: lambda_function.lambda_handler
            Runtime: python3.8
            MemorySize: 3008
            Timeout: 100
            Role: !Sub arn:aws:iam::${AWS::AccountId}:role/main_service_role
            Environment:
                Variables:
                    bucket_name: sample-bucket
                    file_name: config/test.csvEvents:
            S3Event:
                Type: S3
                Properties:
                Bucket:
                    Ref: ImagesBucket     # This must be the name of an S3 bucket declared in the same template file
                Events: s3:ObjectCreated:Put
                Filter:
                    S3Key:
                    Rules:
                    - Name: prefix      # or "suffix"
                        Value: value      # The value to search for in the S3 object key names

S3 事件

Amazon S3 事件通知

于 2021-02-22T18:20:21.027 回答