[FIXED] AWS::S3::Bucket LambdaConfiguration in mehreren AWS Lambdas

Ausgabe

Ich habe 4 AWS Lambdas, die S3-Bucket lesen sollten, wenn eine Datei erstellt wird (S3-Ereignis), aber in Cloudformation kann ich nur 1 Lambda-ARN verwenden, siehe innen AWS::S3::Bucket LambdaConfiguration:

Geben Sie hier die Bildbeschreibung ein

Wie kann ich mehr als 1 Lambda in der Bucket-Lambda-Konfiguration auslösen?

Lösung

AWS hat kürzlich S3-Ereignisbenachrichtigungen mit Amazon EventBridge angekündigt . Folglich können Sie die EventBridge-Benachrichtigung für Ihren Bucket aktivieren und dann eine (oder mehrere) Lambda-Funktion(en) von diesen Ereignissen auslösen lassen.

Beispielimplementierung mit AWS SAM:

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: 'S3 EventBridge Example'

Parameters:
  BucketName:
    Type: String
    Description: 'Name of the bucket to be created'

Resources:

  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketName
      NotificationConfiguration:
        EventBridgeConfiguration:
          EventBridgeEnabled: true

  S3EventProcessor:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: S3EventListener
      Architectures:
        - arm64
      Runtime: nodejs14.x
      Handler: index.handler
      InlineCode: |
        exports.handler = (event, context) => {
          console.log('event:', JSON.stringify(event));
        }
      Events:
        S3EventBridgeRule:
          Type: EventBridgeRule
          Properties:
            Pattern:
              source:
                - aws.s3
              detail:
                bucket:
                  name:
                    - !Ref BucketName


Beantwortet von –
matsev


Antwort geprüft von –
Candace Johnson (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like