簡體   English   中英

多個 AWS Lambda 中的 AWS::S3::Bucket LambdaConfiguration

[英]AWS::S3::Bucket LambdaConfiguration in multiple AWS Lambdas

我有 4 個 AWS Lambda 在創建某些文件時應該讀取 S3 存儲桶(S3 事件),但在 cloudformation 中我只能使用 1 個 lambda ARN,請參閱AWS::S3::Bucket LambdaConfiguration 內部

在此處輸入圖像描述

如何在 Bucket Lambda 配置中觸發多個 Lambda?

S3 不提供這種開箱即用的扇出,而僅通過例如 SNS 提供。
您需要將通知推送到 SNS 主題而不是 lambda 然后

  • 訂閱該主題的四個 lambdas 或
  • 為主題訂閱四個隊列並讓每個 lambda “訂閱”一個隊列

我認為Step functions正是您想要的。 與 S3 相關的教程也很有用

AWS 最近通過 Amazon EventBridge 發布了 S3 事件通知 因此,您可以在您的存儲桶上啟用 EventBridge 通知,然后讓這些事件觸發一個(或多個)Lambda 函數。

使用 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM