【问题标题】:S3 TopicConfiguration- Unable to validate the following destination configurationsS3 TopicConfiguration - 无法验证以下目标配置
【发布时间】:2020-05-16 01:55:20
【问题描述】:

我正在尝试获取 S3 事件通知以并行触发多个 Lambda 函数。

需要通过 SNS,因为您不能定义具有相同 S3 Prefix 的多个 S3 LambdaConfigurations - 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

【问题讨论】:

  • 这听起来可能很傻,但是您可以尝试重新排序您的模板,使其与链接中的示例一样,即第一个主题,然后是主题策略,然后是存储桶?我知道依赖项应该可以工作,但过去曾有几次将它们按所需的创建顺序排列会有所帮助。
  • 不错的尝试,但仍然遇到同样的错误!大声笑

标签: amazon-s3 amazon-cloudformation amazon-sns


【解决方案1】:

错误的引用 Resource: Ref! Topic 应该是 Resource: !Ref Topic :( :( :(

虽然通过了模板验证!哈哈。

道德是在部署之前做更多的模板完整性检查:-/

【讨论】:

    猜你喜欢
    • 2020-06-06
    • 2021-11-26
    • 1970-01-01
    • 2018-04-23
    • 2021-07-04
    • 2020-04-02
    • 2017-12-17
    • 2019-06-20
    • 2021-03-16
    相关资源
    最近更新 更多