无法验证以下目标配置(S3到SQS) [英] Unable to validate the following destination configurations (S3 to SQS)

查看:24
本文介绍了无法验证以下目标配置(S3到SQS)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Serverless设置一个工作流,它创建一个新的S3存储桶、一个新的SQS队列,当在S3存储桶中创建一个对象时,将一个消息放到队列中,一旦队列中有足够的消息,就会旋转一个lambda。我的资源挡路中有以下内容:

resources:
  Resources:
    AnalyticsQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "my-queue"
    S3EventQueuePolicy:
      Type: AWS::SQS::QueuePolicy
      DependsOn: AnalyticsQueue
      Properties:
        PolicyDocument:
          Id: SQSPolicy
          Statement:
            - Effect: Allow
              Action: sqs:SendMessage:*
              Resource: !Ref AnalyticsQueue
        Queues:
          - !GetAtt AnalyticsQueue.Arn
    AnalyticsBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: "my-bucket"
        NotificationConfiguration:
          QueueConfigurations:
            - Event: s3:ObjectCreated:*
              Queue: !GetAtt AnalyticsQueue.Arn

当我尝试部署此应用程序时,收到以下错误:

出现错误:AnalyticsBucket-无法验证以下目标配置(服务:Amazon S3;状态代码:400;错误代码:InvalidArgument;请求ID:E2A1F8BD6BEE6EF4;)。

谷歌了一下,发现问题在NotificationConfiguration挡路AnalyticsBucket。如果我删除整个子挡路,它将部署得很好,但在创建对象时显然不会在队列中生成消息。

正在寻找解决此问题的方法。

aws

许多推荐答案配置允许您连接服务,如果它们没有权限,它们会在运行时失败,但是S3通知配置会检查某些目标是否可以访问。

在这种情况下,您没有允许S3向SQS发送消息。

应该是这样的:

  PolicyDocument:
    Id: SQSPolicy
    Statement:
    - Sid: SQSEventPolicy
      Effect: Allow
      Principal: "*"
      Action: SQS:*
      Resource: "*"
      Condition:
        ArnLike:
          aws:SourceArn: arn:aws:s3:::*

这篇关于无法验证以下目标配置(S3到SQS)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆