Я пытаюсь получить уведомление о событии S3 для одновременного запуска нескольких функций Lambda.
Необходимо go через SNS, так как вы не можете определить несколько S3 LambdaConfigurations
, которые имеют одинаковый S3 Prefix
- Cloudformation жалуется на "перекрытие": - (
Так что я я придерживаюсь этой схемы здесь -
https://aws.amazon.com/blogs/compute/fanout-s3-event-notifications-to-multiple-endpoints/
однако при развертывании я продолжаю нарушать Unable to validate the following destination configurations
. Этот кажется связанным к отсутствующему SNS::TopicPolicy
, что также задокументировано здесь -
https://aws.amazon.com/premiumsupport/knowledge-center/unable-validate-destination-s3/
, однако я определил TopicPolicy
(см. ниже) и сделал Bucket
создание зависит от него. Что я здесь не так делаю? TIA.
---
AWSTemplateFormatVersion: 2010-09-09
Parameters:
AppName:
Type: String
Resources:
Topic:
Properties:
TopicName: !Sub "${AppName}-topic"
Type: AWS::SNS::Topic
TopicPolicy:
Properties:
PolicyDocument:
Id: !Sub "${AppName}-topic-policy"
Statement:
- Action: "sns:Publish"
Effect: Allow
Principal:
Service: 's3.amazonaws.com'
Resource: Ref! Topic
Sid: !Sub "${AppName}-topic-policy-statement"
Version: '2012-10-17'
Topics:
- !Ref Topic
Type: AWS::SNS::TopicPolicy
Bucket:
DependsOn:
- TopicPolicy
Properties:
BucketName: !Sub "${AppName}-bucket"
NotificationConfiguration:
TopicConfigurations:
- Event: "s3:ObjectCreated:*"
Topic: !Ref Topic
Type: AWS::S3::Bucket